ホームページ >Java >&#&チュートリアル >LocalDate を使用して Java で年齢を正確に計算するにはどうすればよいですか?

LocalDate を使用して Java で年齢を正確に計算するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-19 16:48:14639ブラウズ

How Can I Accurately Calculate Age in Java Using LocalDate?

Java での年齢の計算: 総合ガイド

Java プログラミングの領域では、誰かの年齢を計算することが一般的なタスクとして発生することがあります。このニーズに対処するために、開発者は年齢を整数として返すための最適なアプローチに関するガイダンスを求めています。

現在の実装:

提供されたコードは Date オブジェクトと非推奨の get Year() メソッド:

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

強化アプローチ:

JDK 8 では LocalDate を使用した洗練されたソリューションが導入されています:

public static int calculateAge(LocalDate birthDate, LocalDate currentDate) {
    if ((birthDate != null) && (currentDate != null)) {
        return Period.between(birthDate, currentDate).getYears();
    } else {
        return 0;
    }
}

LocalDate を使用する利点:

  • 正確闰年和短月を処理するための計算
  • を回避しますDate オブジェクトとミリ秒に関連付けられた複雑さ
  • null 値の明示的な処理が容易になります

単体テストの例:

提案されたアプローチについては、次の JUnit を検討してください。 test:

public class AgeCalculatorTest {
    @Test
    public void testCalculateAge_Success() {
        LocalDate birthDate = LocalDate.of(1961, 5, 17);
        int actual = AgeCalculator.calculateAge(birthDate, LocalDate.of(2016, 7, 12));
        Assert.assertEquals(55, actual);
    }
}

古い JDK バージョンの非推奨:

JDK 8 より前のすべての Java バージョンはサポート終了に達していることに注意することが重要です。したがって、JDK 8 以降を採用することを強くお勧めします。

以上がLocalDate を使用して Java で年齢を正確に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。