Terug naar Blog
3 min read

Hoe u de leeftijd in Python kunt berekenen (datetime- en dateutil-voorbeelden)

Leer hoe u de leeftijd vanaf de geboortedatum kunt berekenen in Python. Inclusief voltooide jaren, leeftijd vanaf een specifieke datum en veelvoorkomende valkuilen zoals schrikkeljaren en tijdzones.

Hoe u de leeftijd in Python kunt berekenen (datetime- en dateutil-voorbeelden)

De leeftijd berekenen in Python (voorbeelden datetime en dateutil)

Als je de leeftijd moet berekenen in Python op basis van een geboortedatum, is het belangrijkste dat je goed moet doen de definitie van leeftijd: de meeste apps hebben vervulde jaren nodig (volledige verjaardagen), niet alleen het verschil tussen de jaren.

1) Aantal voltooide jaren (de veilige definitie)

Dit retourneert het aantal volledige jaren sinds de geboortedatum (geboortedatum). Er wordt 1 afgetrokken als de verjaardag nog niet heeft plaatsgevonden in het huidige jaar.

van datum/tijd-importdatum

def age_years(geboortedatum: datum, as_of: datum | Geen = Geen) -> int:
    als as_of Geen is:
        as_of = datum.vandaag()
    jaar = as_van.jaar - dob.jaar
    before_birthday = (as_of.month, as_of.day) < (dob.maand, dob.day)
    retourjaren - 1 indien vóór_verjaardag anders jaren

print(age_years(date(2000, 10, 5), date(2026, 2, 26)))

2) Leeftijd op een specifieke datum (niet alleen vandaag)

Veel gebruiksscenario's hebben een 'vanaf'-datum nodig: verzekeringsprijzen, geschiktheidscontroles, schoolsluitingen, rapporten. De bovenstaande functie ondersteunt dit al via as_of.

3) Exacte stijluitvoer (jaren en maanden)

Als je een uitvoer zoals "25 jaar en 4 maanden" wilt, gebruik dan dateutil.relativedelta (deze verwerkt de maandlengtes correct).

van datum/tijd-importdatum
vanuit dateutil.relativedelta importeer relatievedelta

def age_ym(dob: datum, as_of: datum | Geen = Geen):
    als as_of Geen is:
        as_of = datum.vandaag()
    rd = relatievedelta(as_of, dob)
    retourneer rd.jaren, rd.maanden

print(age_ym(datum(2000, 10, 5), datum(2026, 2, 26)))

4) Veelvoorkomende valkuilen (en hoe u ze kunt vermijden)

  • Schrikkeldagverjaardagen: bepaal hoe je 29 februari wilt behandelen in niet-schrikkeljaren. Veel systemen gebruiken 28 februari of 1 maart. Het gedrag van de bibliotheek is belangrijk, dus test het.
  • Datumtijden en tijdzones: voor geboortedatum, geef de voorkeur aan datum boven datetime. Als u datetimes moet gebruiken, normaliseer dan eerst naar dezelfde tijdzone.
  • Toekomstige DOB of ontbrekende waarden: valideren invoer om negatieve leeftijden of crashes te voorkomen.

Snelle controle (geen code)

Als je snel één resultaat nodig hebt, gebruik dan de online calculator: Bereken de leeftijd online.

Gerelateerde handleidingen

Veelgestelde vragen

Waarom is (vandaag.jaar - dob.jaar) soms verkeerd?

Omdat er wordt genegeerd of de verjaardag dit jaar al heeft plaatsgevonden. Je moet vóór de verjaardag 1 aftrekken.

Moet ik datetime of date gebruiken als geboortedatum?

Gebruik datum indien mogelijk. Geboortedatum is een kalenderdag en tijdzones kunnen de datum/tijden over de dagen heen verschuiven.