首页 > Java > java教程 > 如何使用 Java 可靠地计算年龄?

如何使用 Java 可靠地计算年龄?

DDD
发布: 2024-12-18 11:16:11
原创
286 人浏览过

How Can I Reliably Calculate Age in Years Using Java?

计算年龄的 Java 方法

问题:

开发一个 Java 方法,以整数形式返回以年为单位的年龄。该方法采用代表出生日期的 Date 对象。

当前实现:

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

    Date age = new Date(ageInMillis);

    return age.getYear();
}
登录后复制

限制:

  • getYear() 方法已弃用。
  • 如果没有单元测试,当前方法的准确性是有问题的。

使用 JDK 8 改进的解决方案:

JDK 8 引入了使用 LocalDate 类的改进解决方案:

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 可靠地计算年龄?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板