Comment calculer l'âge en Python (exemples datetime et dateutil)
Apprenez à calculer l'âge à partir de la date de naissance en Python. Comprend les années accomplies, l'âge à une date spécifique et les pièges courants tels que les années bissextiles et les fuseaux horaires.
Comment calculer l'âge en Python (exemples datetime et dateutil)
Si vous devez calculer l'âge en Python à partir d'une date de naissance, la principale chose à faire est de bien définir l'âge : la plupart des applications nécessitent années terminées (anniversaires complets), pas seulement la différence entre les années.
1) Années accomplies (la définition sûre)
Ceci renvoie le nombre d'années complètes depuis la date de naissance (DOB). Il soustrait 1 si l'anniversaire n'a pas encore eu lieu dans l'année en cours.
à partir de la date d'importation dateheure
def age_years(dob : date, as_of : date | Aucun = Aucun) -> int :
si as_of vaut Aucun :
as_of = date.aujourd'hui()
années = as_of.year - dob.year
before_birthday = (as_of.month, as_of.day) < (dob.month, dob.day)
années de retour - 1 si avant_anniversaire sinon années
print(age_years(date(2000, 10, 5), date(2026, 2, 26)))
2) Âge à une date précise (pas seulement aujourd'hui)
De nombreux cas d'utilisation nécessitent une date « à partir de » : tarification des assurances, contrôles d'éligibilité, dates limites de scolarité, rapports. La fonction ci-dessus le prend déjà en charge via as_of.
3) Style de sortie exact (années et mois)
Si vous souhaitez un résultat du type "25 ans 4 mois", utilisez dateutil.relativedelta (il gère correctement la durée des mois).
à partir de la date d'importation dateheure
à partir de dateutil.relativedelta importer relativedelta
def age_ym(dob : date, as_of : date | Aucun = Aucun) :
si as_of vaut Aucun :
as_of = date.aujourd'hui()
rd = delta relatif (as_of, dob)
retourner rd.années, rd.mois
print(age_ym(date(2000, 10, 5), date(2026, 2, 26)))
4) Les pièges courants (et comment les éviter)
- Anniversaires bissextiles : décidez comment vous souhaitez traiter le 29 février les années non bissextiles. De nombreux systèmes utilisent le 28 février ou le 1er mars. Le comportement de la bibliothèque est important, alors testez-le.
- Date-heure et fuseaux horaires : pour la date de naissance, préférez
dateplutôt quedatetime. Si vous devez utiliser des dates et des heures, normalisez-vous d'abord sur le même fuseau horaire. - DDN future ou valeurs manquantes : validez les entrées pour éviter les âges négatifs ou les plantages.
Vérification rapide (sans code)
Si vous n'avez besoin que d'un seul résultat rapidement, utilisez le calculateur en ligne : Calculer l'âge en ligne.
Guides associés
- Comment calculer l'âge (guide complet)
- Comment calculer l'âge dans Excel
- Comment calculer l'âge en JavaScript
FAQ
Pourquoi (aujourd'hui.année - dob.année) est-il parfois faux ?
Parce qu'il ignore si l'anniversaire a déjà eu lieu cette année. Vous devez soustraire 1 avant l'anniversaire.
Dois-je utiliser datetime ou date comme date de naissance ?
Utilisez date lorsque cela est possible. DOB est un jour calendaire et les fuseaux horaires peuvent décaler les dates et heures d'un jour à l'autre.