Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Mengira Umur dengan Aman dalam Tahun Menggunakan Java?

Bagaimanakah Saya Boleh Mengira Umur dengan Aman dalam Tahun Menggunakan Java?

DDD
Lepaskan: 2024-12-18 11:16:11
asal
287 orang telah melayarinya

How Can I Reliably Calculate Age in Years Using Java?

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:

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:

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:

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);
    }
}
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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan