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);
|
cal.setTimeInMillis(birthday);
|
||||||
int age = year - cal.get(Calendar.YEAR);
|
int age = year - cal.get(Calendar.YEAR);
|
||||||
|
//当前日期,则为0岁
|
||||||
|
if (age == 0){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
final int monthBirth = cal.get(Calendar.MONTH);
|
final int monthBirth = cal.get(Calendar.MONTH);
|
||||||
if (month == monthBirth) {
|
if (month == monthBirth) {
|
||||||
|
|
||||||
final int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
|
final int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
|
||||||
final boolean isLastDayOfMonthBirth = dayOfMonthBirth == cal.getActualMaximum(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--;
|
age--;
|
||||||
}
|
}
|
||||||
|
@ -1100,4 +1100,15 @@ public class DateUtilTest {
|
|||||||
Assert.assertNotNull(dateTime3);
|
Assert.assertNotNull(dateTime3);
|
||||||
Assert.assertEquals("2021-03-17 06:31:33", dateTime3.toString());
|
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