Calcul de l'age à partir d'une date de naissance au préable de type string
Fermé
Anouchka2586
Messages postés
51
Date d'inscription
vendredi 10 octobre 2014
Statut
Membre
Dernière intervention
20 mars 2022
-
24 juil. 2020 à 18:12
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 24 juil. 2020 à 18:51
KX Messages postés 16668 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 17 mars 2023 - 24 juil. 2020 à 18:51
A voir également:
- Calcul de l'age à partir d'une date de naissance au préable de type string
- Annuaire portable gratuit a partir d'un nom ✓ - Forum Mobile
- Iphone 14 date de sortie - Guide
- Comment trouver un numéro à partir du nom et prénom ✓ - Forum Mobile
- Recherche date de naissance d'une personne vivante - Forum Webmastering
- Journal de sa naissance gratuit - Télécharger - Histoire & Religion
1 réponse
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
24 juil. 2020 à 18:51
24 juil. 2020 à 18:51
Bonjour,
Une date c'est un point dans le temps. Un âge, c'est une distance entre deux points du temps.
Ces deux notions sont représentées respectivement par les classes LocalDate et Period :
Exemple :
Pour le premier paramètre, si tu le veux à partir d'un String il faut le parser comme tu as commencé à le faire :
Pour le deuxième paramètre, si tu veux l'âge que l'on a aujourd'hui, il faut utiliser now() :
Pour le troisième paramètre, on va dire que tu veux l'âge en années :
Donc au final cela donne :
Une date c'est un point dans le temps. Un âge, c'est une distance entre deux points du temps.
Ces deux notions sont représentées respectivement par les classes LocalDate et Period :
Exemple :
public static long distance(LocalDate date1, LocalDate date2, TemporalUnit unit) {
return Period.between(date1, date2).get(unit);
}
Pour le premier paramètre, si tu le veux à partir d'un String il faut le parser comme tu as commencé à le faire :
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d/M/yyyy");
LocalDate date1 = LocalDate.parse(dateNaissance, formatter);
Pour le deuxième paramètre, si tu veux l'âge que l'on a aujourd'hui, il faut utiliser now() :
LocalDate date2 =LocalDate.now();
Pour le troisième paramètre, on va dire que tu veux l'âge en années :
TemporalUnit unit = ChronoUnit.YEARS;
Donc au final cela donne :
public static long age(String dateNaissance) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d/M/yyyy");
LocalDate date1 = LocalDate.parse(dateNaissance, formatter);
LocalDate date2 = LocalDate.now();
TemporalUnit unit = ChronoUnit.YEARS;
return Period.between(date1, date2).get(unit);
}