java后台实体类中通过生日日期得出年龄

 birthday为实体类当中的一个属性,通过改写set方法 计算年龄,如下图所示,

1:DateUtils.formatString(birthday.trim(),"yyyyMMdd") ,此方法为将传入的生日参数去除首位空格,后面为日期格式接着传入

DateUtils工具类的方法里

 
  private String birthday;

    public void setBirthday(String birthday) {
        try{
            this.birthday ="Y"+String.valueOf(DateUtils.getAge(DateUtils.formatString(
                    birthday.trim(),"yyyyMMdd")));
        }catch(	Exception e){
            this.birthday ="";
        }
    }

方法如下: 需要两个参数 string类型,前者为生日日期,后者为日期格式

DateUtils. formatString(String date, String format);

/**
	 * 把字符串转换为DATE
	 */
	public static Date formatString(String date, String format) {
		if (CommonUtil.isEmpty(date)) {
			return null;
		}
		if (CommonUtil.isEmpty(format)) {
			format = "yyyy-MM-dd HH:mm:ss";
		}
		SimpleDateFormat dateFormat = new SimpleDateFormat(format); // 格式化当前系统日期
		Date newDate = new Date();
		try {
			newDate = dateFormat.parse(date);
		} catch (Exception e) {
			// e.printStackTrace();
		}
		return newDate;
	}

 

 通过转换字符串,返回的为Date类型的日期

DateUtils.getAge(Date birhtDay);此方法获取生日,如下:
// 根据日期获取生日
	public static int getAge(Date birthDay) {
		Calendar cal = Calendar.getInstance();

		if (cal.before(birthDay)) {
			return 100;
		}
		int yearNow = cal.get(Calendar.YEAR);
		int monthNow = cal.get(Calendar.MONTH);
		int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);
		cal.setTime(birthDay);

		int yearBirth = cal.get(Calendar.YEAR);
		int monthBirth = cal.get(Calendar.MONTH);
		int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);

		int age = yearNow - yearBirth;

		if (monthNow <= monthBirth) {
			if (monthNow == monthBirth) {
				if (dayOfMonthNow < dayOfMonthBirth)
					age--;
			} else {
				age--;
			}
		}

		return age;
	}

 得到生日,此时为int类型:

 

private String birthday;

    public void setBirthday(String birthday) {
        try{
            this.birthday ="Y"+String.valueOf(DateUtils.getAge(DateUtils.formatString(
                    birthday.trim(),"yyyyMMdd")));
        }catch(	Exception e){
            this.birthday ="";
        }
    }

 

通过String.valueOf(int) 方法将int转换为String类型的,

如此,在取值时即可直接得到生日大小

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值