Maison >Java >javaDidacticiel >Comment puis-je calculer avec précision l'âge en Java à l'aide de LocalDate ?

Comment puis-je calculer avec précision l'âge en Java à l'aide de LocalDate ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-19 16:48:14639parcourir

How Can I Accurately Calculate Age in Java Using LocalDate?

Calcul de l'âge en Java : un guide complet

Dans le domaine de la programmation Java, calculer l'âge d'une personne peut constituer une tâche courante. Pour répondre à ce besoin, un développeur recherche des conseils sur la meilleure approche pour renvoyer l'âge sous forme d'entier.

Mise en œuvre actuelle :

Le code fourni s'appuie sur les objets Date et les Méthode getYear() obsolète :

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

Améliorée Approche :

JDK 8 introduit une solution élégante utilisant LocalDate :

public static int calculateAge(LocalDate birthDate, LocalDate currentDate) {
    if ((birthDate != null) && (currentDate != null)) {
        return Period.between(birthDate, currentDate).getYears();
    } else {
        return 0;
    }
}

Avantages de l'utilisation de LocalDate :

  • Précis calcul comme il handles闰年和短月
  • Évite les complexités associées aux objets Date et aux millisecondes
  • Facilite la gestion explicite des valeurs nulles

Exemple de test unitaire :

Pour démontrer l'efficacité de l'approche proposée, considérez ce qui suit Test JUnit :

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

Dépréciation des anciennes versions du JDK :

Il est crucial de noter que toutes les versions de Java antérieures au JDK 8 ont atteint leur fin de support. Ainsi, adopter JDK 8 ou version ultérieure est fortement recommandé.

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!

Déclaration:
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