根据Date类型出生年月日计算出年龄

该博客介绍了如何在Java中处理用户通过时间选择器提供的Date类型出生日期,以计算1-100岁之间的年龄。在jsp页面设置出生日期选择范围为1920年至昨天,然后在controller和Service层处理数据,包括将String转换为Date并计算年龄。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要求:给一个Date类型的出生时间,出身年月日使用时间选择器选取,得到此人的年龄,要求年龄限制在1-100岁之间。

1.在jsp页面得到出生时间,格式为yyyy-MM-dd HH:mm:ss,限定最小选择范围以当前时间往后退100年,即1920年,最大范围为昨天。

<ui:idate id="birthday" name="birthday" value="${birthday}" label="出生年月日"
			mindate="1920-12-3 00:00:00" maxdate="2020-12-2 00:00:00"
			format="yyyy-MM-dd HH:mm:ss" required="true" />

2.在controller层获取前端的表单数据,传递到Service层保存。

public void saveUempChkClass() throws ParseException {
		String jsonStr = this.pageData.getParams().get("form");//获取表单数据
		StuService.save(jsonStr);//在service层保存
		this.returnData.toSuccess("保存成功!");
	}

3.在Service层计算并保存

3.1 获取json格式数据

JSONObject jsonObject = JSONObject.fromObject(jsonStr);

3.2 get出生时间()

String birthday = (String)jsonObject.get("birthday") ;//出生时间

3.3 将String格式的数据转为Date格式

Date birthdaynow = parse(birthday);
//字符串转换为Date格式
	public static Date parse(String strDate) throws ParseException
	 { 
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	    return sdf.parse(strDate); }

3.4 由出生时间计算年龄

String age= getAge(birthdaynow);
//根据时间获取年龄
    private String getAge(Date birthdaynow) throws ParseException {
    	 Calendar cal = Calendar.getInstance();//当前时间
    	 //当前的年月日
    	 int yearNow = cal.get(Calendar.YEAR);  //年
    	 int monthNow = cal.get(Calendar.MONTH);  //月
    	 int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH); //日
         cal.setTime(birthdaynow);//出生时间Date
         //出生的年月日
         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--;  
             } 
             
         } 
         String s2 = String.valueOf(age);//int转为String类型
         return s2;
          
	}

目录

要求:给一个Date类型的出生时间,出身年月日使用时间选择器选取,得到此人的年龄,要求年龄限制在1-100岁之间。

1.在jsp页面得到出生时间,格式为yyyy-MM-dd HH:mm:ss,限定最小选择范围以当前时间往后退100年,即1920年,最大范围为昨天。

2.在controller层获取前端的表单数据,传递到Service层保存。

3.在Service层计算并保存

3.1 获取json格式数据

3.2 get出生时间()

3.3 将String格式的数据转为Date格式

3.4 由出生时间过去年龄


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值