問題:
年齢を整数として返す Java メソッドを開発する。このメソッドは、生年月日を表す Date オブジェクトを受け取ります。
現在の実装:
public int getAge() { long ageInMillis = new Date().getTime() - getBirthDate().getTime(); Date age = new Date(ageInMillis); return age.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 中国語 Web サイトの他の関連記事を参照してください。