Java日期时间API系列34Jdk8中java.time包中的新的日期时间API类应用,使用Period计算生日。
通过Java日期时间API系列9-----Jdk8中java.time包中的新的日期时间API类的Period和Duration的区别中得知,Period可以比较2个日期相差的年月日。年龄计算是2个日期相差的年的值,具体还要根据月日微调,如果小于生日年龄减1。下面使用Period可以非常方便的计算年龄。
/*** 计算年龄
*
@param birthDay*
@return int 年龄*/publicstaticint getAge(LocalDate birthDay){
Objects.requireNonNull(birthDay, "birthDay");
Period period = Period.between(birthDay, LocalDate.now());
if (period.getYears() < 0) {
thrownew DateTimeException("birthDay is before now!");
} else {
return period.getYears();
}
}
/**
* 计算年龄
* @param birthDay
* @return int 年龄
*/
publicstaticint getAge(Date birthDay){
return getAge(DateTimeConverterUtil.toLocalDate(birthDay));
}
/**
* 计算年龄
* @param birthDay
* @return int 年龄
*/
publicstaticint getAge(LocalDateTime birthDay){
return getAge(DateTimeConverterUtil.toLocalDate(birthDay));
}
测试代码:
/*** 年龄生日测试
*/@Test
publicvoid getAgeBirthDayTest(){Date date
= DateTimeCalculatorUtil.getDate(2000, 6, 4);System.out.println(DateTimeCalculatorUtil.getAge(date));
}
输出:
20
源代码地址:https://github.com/xkzhangsan/xk-time
以上是 Java日期时间API系列34Jdk8中java.time包中的新的日期时间API类应用,使用Period计算生日。 的全部内容, 来源链接: utcz.com/z/517116.html