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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 24 juil. 2020 à 18:51
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 24 juil. 2020 à 18:51
A voir également:
- Algorithme date de naissance
- Journal de ma naissance gratuit à imprimer - Télécharger - Histoire & Religion
- Jm date - Forum Consommation & Internet
- Whatsapp date incorrecte ✓ - Forum Mobile
- Cette photo n’a pas été prise cette année. trouvez la date, l'heure et avec quel modèle d'appareil photo elle a été prise. - Forum Graphisme
- Comment trouver la date de naissance de quelqu'un - Forum Réseaux sociaux
1 réponse
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
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); }