Kaedah Java untuk Mengira Umur
Masalah:
Membangunkan kaedah Java yang mengembalikan umur dalam tahun sebagai integer . Kaedah ini mengambil objek Tarikh yang mewakili tarikh lahir.
Pelaksanaan Semasa:
1 2 3 4 5 6 7 | public int getAge() {
long ageInMillis = new Date ().getTime() - getBirthDate().getTime();
Date age = new Date (ageInMillis);
return age.getYear();
}
|
Salin selepas log masuk
Batasan:
- kaedah getYear() ditamatkan.
- Ketepatan arus kaedah boleh dipersoalkan tanpa ujian unit.
Penyelesaian Diperbaiki dengan JDK 8:
JDK 8 memperkenalkan penyelesaian yang diperhalusi menggunakan kelas LocalDate:
1 2 3 4 5 6 7 8 9 10 | 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;
}
}
}
|
Salin selepas log masuk
JUnit Ujian:
1 2 3 4 5 6 7 8 9 10 11 12 | 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);
}
}
|
Salin selepas log masuk
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!