Masalah:
Membangunkan kaedah Java yang mengembalikan umur dalam tahun sebagai integer . Kaedah ini mengambil objek Tarikh yang mewakili tarikh lahir.
Pelaksanaan Semasa:
public int getAge() { long ageInMillis = new Date().getTime() - getBirthDate().getTime(); Date age = new Date(ageInMillis); return age.getYear(); }
Batasan:
Penyelesaian Diperbaiki dengan JDK 8:
JDK 8 memperkenalkan penyelesaian yang diperhalusi menggunakan kelas 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 Ujian:
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); } }
Cadangan:
Naik taraf kepada JDK 8 untuk penyelesaian yang lebih baik dan boleh dipercayai untuk mengira umur.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Umur dengan Aman dalam Tahun Menggunakan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!