Problem:
Entwickeln Sie eine Java-Methode, die ein Alter in Jahren als Ganzzahl zurückgibt . Die Methode benötigt ein Date-Objekt, das das Geburtsdatum darstellt.
Aktuelle Implementierung:
public int getAge() { long ageInMillis = new Date().getTime() - getBirthDate().getTime(); Date age = new Date(ageInMillis); return age.getYear(); }
Einschränkungen:
Verbesserte Lösung mit JDK 8:
JDK 8 führt eine verfeinerte Lösung mit der LocalDate-Klasse ein:
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 Test:
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); } }
Empfehlung:
Upgrade auf JDK 8 für eine verbesserte und zuverlässige Lösung zur Altersberechnung.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Java zuverlässig das Alter in Jahren berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!