LocalDate 根据身份证号码或者生日计算年龄

首先,LocalDate是一个immutable class(不可变类),
所以和String类一样,不需要new一个新的对象才可以使用,
LocalDate类用于设定日期的是of方法(重载),以下是其中的一个:

public static LocalDate of(int year, int month, int dayOfMonth)

设置年月日,好消息是这里的month是从1开始的。

下面是LocalDate类用于比较日期的until方法:

public Period until(ChronoLocalDate endDateExclusive)

方法返回的是一个Period类型的对象,Period代表的是形如“2年,3个月,4天”的一段时间间隔

public long until(Temporal endExclusive, TemporalUnit unit)

方法返回的是一个long类型的具体数值,long代表的是形如“2年”,“17个月”,“486天”的具体到某一时间单位的时间间隔

示例代码如下:

public static int getAge(String identType, String identNum, String birthDate) {
	int age = 0;
	LocalDate birthday;
	if ("01".equals(identType) || "02".equals(identNum)) {
		// 根据身份证获取出生日期
		int year = Integer.parseInt(identNum.substring(6, 10));
		int month = Integer.parseInt(identNum.substring(10, 12));
		int day = Integer.parseInt(identNum.substring(12, 14));
		
		birthday = LocalDate.of(year, month, day);
	} else {
		DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
		birthday = LocalDate.parse(birthDate, dateTimeFormatter);
	}
	if (null != birthday) {
		// 当前日期
		LocalDate today = LocalDate.now();
		age = (int) birthday.until(today, ChronoUnit.YEARS);
		// age = (int) ChronoUnit.YEARS.between(birthday, today);
		
		// Period period = Period.between(birthday, today);
		// age = period.getYears();
	}
	return age;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用SSM框架来判断生日并显示相应的提示。以下是一个示例代码,假设你有一个名为"birthday"的字段用于存储生日信息: 在你的Controller中,你可以添加一个方法来处理判断生日并返回提示信息的逻辑: ```java @RequestMapping("/checkBirthday") @ResponseBody public String checkBirthday(@RequestParam("birthday") String birthday) { // 获取当前日期 LocalDate currentDate = LocalDate.now(); // 将生日字符串转换为LocalDate对象 LocalDate birthDate = LocalDate.parse(birthday); // 判断当前日期是否等于生日 if (currentDate.getMonthValue() == birthDate.getMonthValue() && currentDate.getDayOfMonth() == birthDate.getDayOfMonth()) { return "今天是你的生日,祝你生日快乐!"; } else { return "今天不是你的生日。"; } } ``` 在前端页面中,你可以使用Ajax来向服务器发送请求并显示返回的提示信息: ```javascript <script> function checkBirthday() { var birthday = $("#birthdayInput").val(); $.ajax({ url: "/checkBirthday", type: "POST", data: {birthday: birthday}, success: function(response) { $("#birthdayResult").text(response); }, error: function() { alert("请求失败!"); } }); } </script> <input type="date" id="birthdayInput"> <button onclick="checkBirthday()">判断生日</button> <p id="birthdayResult"></p> ``` 这样,当用户选择日期并点击"判断生日"按钮时,前端会将选择的生日发送到后端进行判断,并将返回的提示信息显示在页面上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值