Je veux retourner un âge en années sous la forme d'un int dans une méthode Java. Ce que j'ai maintenant est le suivant où getBirthDate() renvoie un objet Date (avec la date de naissance ;-)) :
public int getAge() {
long ageInMillis = new Date().getTime() - getBirthDate().getTime();
Date age = new Date(ageInMillis);
return age.getYear();
}
Mais comme getYear() est déprécié, je me demande s'il existe une meilleure façon de procéder ? Je ne suis même pas sûr que cela fonctionne correctement, puisque je n'ai pas (encore) de tests unitaires en place.
0 votes
J'ai changé d'avis à ce sujet : l'autre question n'a qu'une approximation des années entre les dates, pas un âge vraiment correct.
0 votes
Étant donné qu'il renvoie un int, pouvez-vous préciser ce que vous entendez par un âge "correct" ?
2 votes
La différence entre date et calendrier est un concept fondamental que l'on peut glaner en lisant la documentation Java. Je ne comprends pas pourquoi cela a été autant upvoted.
2 votes
@demongolem ? ?? La date et le calendrier sont faciles à comprendre ! Non, pas du tout. Il y a un zillion de questions sur le sujet ici sur Stack Overflow. Le projet Joda-Time a produit l'une des bibliothèques les plus populaires, pour remplacer ces classes de date-heure gênantes. Plus tard, Sun, Oracle, et la communauté JCP ont accepté JSR 310 ( java.time ), admettant que les classes héritées étaient désespérément inadéquates. Pour plus d'informations, voir Tutoriel par Oracle .