如何用Java计算某人的年龄?

如何用Java计算某人的年龄?

我想在Java方法中作为int返回一个以年为单位的年龄。下面是getBirthDate()返回日期对象(带有生日;-)的下面内容:

public int getAge() {
    long ageInMillis = new Date().getTime() - getBirthDate().getTime();

    Date age = new Date(ageInMillis);

    return age.getYear();}

但是,既然getYear()被废弃了,我想知道是否有更好的方法来做到这一点?我甚至不确定这是否正确,因为我还没有进行单元测试。


慕姐4208626
浏览 1302回答 3
3回答

翻翻过去那场雪

JDK 8使它变得简单而优雅:public class AgeCalculator {     public static int calculateAge(LocalDate birthDate, LocalDate currentDate) {         if ((birthDate != null) && (currentDate != null)) {             return Period.between(birthDate, currentDate).getYears();         } else {             return 0;         }     }}通过一个JUnit测试来演示它的使用:public class AgeCalculatorTest {     @Test     public void testCalculateAge_Success() {         // setup         LocalDate birthDate = LocalDate.of(1961, 5, 17);         // exercise         int actual = AgeCalculator.calculateAge(birthDate, LocalDate.of(2016, 7, 12));         // assert         Assert.assertEquals(55, actual);     }}现在每个人都应该使用JDK 8了。所有早期的版本都已经结束了他们的支持生命。

POPMUISE

检查尤达,这简化了日期/时间计算(Joda也是新的标准Java日期/时间API的基础,因此您将学习一个即将成为标准的API)。编辑:Java 8有非常相似的东西值得一看。G.LocalDate birthdate = new LocalDate (1970, 1, 20);LocalDate now = new LocalDate();Years age = Years.yearsBetween(birthdate, now);这是你想要的最简单的。预Java 8的内容(正如您已经发现的那样)有些不直观。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java