Maison > Java > javaDidacticiel > Comment puis-je calculer de manière fiable l'âge en années à l'aide de Java ?

Comment puis-je calculer de manière fiable l'âge en années à l'aide de Java ?

DDD
Libérer: 2024-12-18 11:16:11
original
352 Les gens l'ont consulté

How Can I Reliably Calculate Age in Years Using Java?

Méthode Java pour calculer l'âge

Problème :

Développer une méthode Java qui renvoie un âge en années sous forme d'entier . La méthode prend un objet Date représentant la date de naissance.

Mise en œuvre actuelle :

public int getAge() {
    long ageInMillis = new Date().getTime() - getBirthDate().getTime();

    Date age = new Date(ageInMillis);

    return age.getYear();
}
Copier après la connexion

Limitations :

  • La méthode getYear() est obsolète.
  • La précision de la méthode actuelle est discutable sans unité tests.

Solution améliorée avec JDK 8 :

JDK 8 introduit une solution raffinée utilisant la classe 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;
        }
    }
}
Copier après la connexion

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);
    }
}
Copier après la connexion

Recommandation :

Mettez à niveau vers JDK 8 pour une solution améliorée et fiable de calcul de l'âge.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal