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

我想以Java方法的整数形式返回年龄(以年为单位)。我现在所拥有的是getBirthDate()返回Date对象(带有出生日期;的以下内容:

public int getAge() {

long ageInMillis = new Date().getTime() - getBirthDate().getTime();

Date age = new Date(ageInMillis);

return age.getYear();

}

但是由于不赞成使用getYear(),所以我想知道是否有更好的方法可以做到这一点?我什至不确定这是否能正常工作,因为我还没有进行单元测试。

回答:

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。所有较早的版本都已终止其支持寿命。

以上是 如何计算Java中某人的年龄? 的全部内容, 来源链接: utcz.com/qa/428892.html

回到顶部