So berechnen Sie das Alter in Python (Beispiele für datetime und dateutil)
Erfahren Sie, wie Sie in Python das Alter anhand des Geburtsdatums berechnen. Beinhaltet abgeschlossene Jahre, Alter ab einem bestimmten Datum und häufige Fallstricke wie Schaltjahre und Zeitzonen.
So berechnen Sie das Alter in Python (Datetime- und Dateutil-Beispiele)
Wenn Sie das Alter in Python anhand eines Geburtsdatums berechnen müssen, ist die Definition des Alters das Wichtigste, um es richtig zu machen: Die meisten Apps benötigen abgeschlossene Jahre (vollständige Geburtstage), nicht nur die Differenz zwischen den Jahren.
1) Abgeschlossene Jahre (die sichere Definition)
Dies gibt die Anzahl der vollen Jahre seit dem Geburtsdatum (DOB) zurück. Es wird 1 abgezogen, wenn der Geburtstag im aktuellen Jahr noch nicht stattgefunden hat.
ab Datum/Uhrzeit-Importdatum
def age_years(dob: date, as_of: date | None = None) -> int:
wenn as_of None ist:
as_of = date.today()
years = as_of.year - dob.year
before_birthday = (as_of.month, as_of.day) < (dob.month, as_of.day)
Gibt Jahre zurück – 1, wenn before_birthday, sonst Jahre
print(age_years(date(2000, 10, 5), date(2026, 2, 26)))
2) Alter zu einem bestimmten Datum (nicht nur heute)
Viele Anwendungsfälle erfordern ein „Stand“-Datum: Versicherungspreise, Berechtigungsprüfungen, Schulschluss, Berichte. Die obige Funktion unterstützt es bereits über Stand.
3) Exakte Stilausgabe (Jahre und Monate)
Wenn Sie eine Ausgabe wie „25 Jahre 4 Monate“ wünschen, verwenden Sie dateutil.relativedelta (Monatslängen werden korrekt verarbeitet).
ab Datum/Uhrzeit-Importdatum
aus dateutil.relativedelta relativedelta importieren
def age_ym(dob: date, as_of: date | None = None):
wenn as_of None ist:
as_of = date.today()
rd = relativedelta(as_of, dob)
Rückgabe Rd.Jahre, Rd.Monate
print(age_ym(date(2000, 10, 5), date(2026, 2, 26)))
4) Häufige Fallstricke (und wie man sie vermeidet)
- Geburtstage an Schalttagen: Entscheiden Sie, wie Sie den 29. Februar in Nicht-Schaltjahren behandeln möchten. Viele Systeme verwenden den 28. Februar oder den 1. März. Das Verhalten der Bibliothek ist wichtig, also testen Sie es.
- Datumszeiten und Zeitzonen: für Geburtsdatum bevorzugen Sie
DatumgegenüberDatum/Uhrzeit. Wenn Sie Datums- und Uhrzeitangaben verwenden müssen, normalisieren Sie sie zuerst auf dieselbe Zeitzone. - Zukünftiges Geburtsdatum oder fehlende Werte: Validieren Sie Eingaben, um negative Altersangaben oder Abstürze zu vermeiden.
Schnellcheck (kein Code)
Wenn Sie nur schnell ein Ergebnis benötigen, verwenden Sie den Online-Rechner: Alter online berechnen.
Verwandte Leitfäden
- So berechnen Sie das Alter (vollständige Anleitung)
- So berechnen Sie das Alter in Excel
- So berechnen Sie das Alter in JavaScript
FAQ
Warum ist (heute.Jahr - Geburtsdatum.Jahr) manchmal falsch?
Weil es ignoriert, ob der Geburtstag dieses Jahr bereits stattgefunden hat. Sie müssen vor dem Geburtstag 1 subtrahieren.
Soll ich datetime oder date als Geburtsdatum verwenden?
Verwenden Sie nach Möglichkeit das Datum. Geburtsdatum ist ein Kalendertag und Zeitzonen können Datums- und Uhrzeitangaben über mehrere Tage hinweg verschieben.