mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
fix bug
This commit is contained in:
parent
5753444de2
commit
10a16c4ee3
@ -659,13 +659,18 @@ public class CalendarUtil {
|
||||
|
||||
cal.setTimeInMillis(birthday);
|
||||
int age = year - cal.get(Calendar.YEAR);
|
||||
//当前日期,则为0岁
|
||||
if (age == 0){
|
||||
return 0;
|
||||
}
|
||||
|
||||
final int monthBirth = cal.get(Calendar.MONTH);
|
||||
if (month == monthBirth) {
|
||||
|
||||
final int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
|
||||
final boolean isLastDayOfMonthBirth = dayOfMonthBirth == cal.getActualMaximum(Calendar.DAY_OF_MONTH);
|
||||
if ((false == isLastDayOfMonth || false == isLastDayOfMonthBirth) && dayOfMonth < dayOfMonthBirth) {
|
||||
// issue#I6E6ZG,法定生日当天不算年龄,从第二天开始计算
|
||||
if ((false == isLastDayOfMonth || false == isLastDayOfMonthBirth) && dayOfMonth <= dayOfMonthBirth) {
|
||||
// 如果生日在当月,但是未达到生日当天的日期,年龄减一
|
||||
age--;
|
||||
}
|
||||
|
@ -1100,4 +1100,15 @@ public class DateUtilTest {
|
||||
Assert.assertNotNull(dateTime3);
|
||||
Assert.assertEquals("2021-03-17 06:31:33", dateTime3.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* issue#I6E6ZG 法定年龄/周岁/实岁计算
|
||||
*/
|
||||
@Test
|
||||
public void issueI6E6ZGTest() {
|
||||
// issue#I6E6ZG,法定生日当天不算年龄,从第二天开始计算
|
||||
Assert.assertEquals(70, DateUtil.age(DateUtil.parse("1952-02-14"), DateUtil.parse("2023-02-14")));
|
||||
Assert.assertEquals(71, DateUtil.age(DateUtil.parse("1952-02-13"), DateUtil.parse("2023-02-14")));
|
||||
Assert.assertEquals(0, DateUtil.age(DateUtil.parse("2023-02-14"), DateUtil.parse("2023-02-14")));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user