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

回到顶部