diff --git a/hutool-core/src/main/java/cn/hutool/core/date/CalendarUtil.java b/hutool-core/src/main/java/cn/hutool/core/date/CalendarUtil.java index 72baae414..50d807829 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/CalendarUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/CalendarUtil.java @@ -396,13 +396,13 @@ public class CalendarUtil { * @return 年龄 */ protected static int age(long birthday, long dateToCompare) { - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(dateToCompare); - - if (cal.before(birthday)) { + if (birthday > dateToCompare) { throw new IllegalArgumentException("Birthday is after dateToCompare!"); } + final Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(dateToCompare); + final int year = cal.get(Calendar.YEAR); final int month = cal.get(Calendar.MONTH); final int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH); diff --git a/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java index 39f9d550b..6123d4b76 100644 --- a/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/date/DateUtilTest.java @@ -700,8 +700,7 @@ public class DateUtilTest { public void ageTest2(){ String d1 = "2019-02-29"; String d2 = "2018-02-28"; - final int age = DateUtil.age(DateUtil.parseDate(d1), DateUtil.parseDate(d2)); - Assert.assertEquals(18, age); + DateUtil.age(DateUtil.parseDate(d1), DateUtil.parseDate(d2)); } @Test