Altersrechner — Genaues Alter in Jahren, Monaten & Tagen
Kostenloser Altersrechner: Geben Sie Ihr Geburtsdatum ein, um Ihr genaues Alter in Jahren, Monaten und Tagen zu erhalten, plus Gesamtwochen, Tage, Stunden und Ihren nächsten Geburtstag.
Altersrechner
Sie wurden geboren auf einem Monday
Nächster Geburtstag: 127 Tage entfernt (wird 37)
Ihr Alter in anderen Einheiten
Lebensfortschritt
Ihr Alter im Vergleich zu einer veranschaulichenden 80-Jahres-Referenzspanne.
Dokumentation
Was ist ein Altersrechner?
Ein Altersrechner ermittelt die genaue Zeitspanne zwischen zwei Daten: einem Geburtsdatum und einem Zieldatum, normalerweise dem heutigen Tag. Das Ergebnis wird in Jahren, Monaten und Tagen sowie als fortlaufende Gesamtsumme in Monaten, Wochen, Tagen, Stunden, Minuten und Sekunden angegeben. Das Alter kann auch für ein Datum in der Vergangenheit oder Zukunft berechnet werden. Dadurch wird angezeigt, wie alt eine Person an diesem Tag war oder sein wird.
So wird das Alter berechnet
Das Alter ist der Abstand zwischen zwei Kalenderdaten. Es gibt zwei korrekte Möglichkeiten, diesen Abstand anzugeben, und beide sind für unterschiedliche Zwecke nützlich.
Kalenderalter (Jahre, Monate, Tage)
Dies ist die im Alltag übliche Angabe des Alters, etwa „33 Jahre, 4 Monate und 5 Tage alt“. Es wird in drei Schritten ermittelt:
- Die seit dem Geburtsdatum vollständig vergangenen Jahre zählen.
- Ab dem letzten Geburtstag die vollständig vergangenen Monate zählen.
- Von dort aus die verbleibenden Tage zählen.
Schritt 3 wird gegen Monatsende schwierig, weil die Monate unterschiedlich viele Tage haben. Eine am 31. Januar geborene Person ist am 1. März 1 Monat und 1 Tag alt. Ein Monat nach dem 31. Januar ist der 28. Februar (in einem Schaltjahr der 29. Februar), da es keinen 31. Februar gibt. Der 1. März ist einen Tag danach. Diese Methode, die nach der Python-Bibliothek, die sie bekannt gemacht hat, manchmal als relativedelta-Regel bezeichnet wird, setzt das Jubiläumsdatum auf den letzten Tag des kürzeren Monats, sodass die Tageszahl nie negativ wird.
Gesamte vergangene Zeit (Tage, Stunden, Sekunden)
Für eine präzise Berechnung der gelebten Zeit werden beide Daten in einen einzigen Zeitpunkt umgewandelt und die Differenz in ganzen Tagen ermittelt:
wobei d die Anzahl der vollen Tage, t das Zieldatum und b das Geburtsdatum bezeichnet, jeweils als Anzahl von Millisekunden angegeben, und der Divisor die Anzahl der Millisekunden in einem Tag ist.
Vor der Subtraktion werden beide Daten auf Mitternacht UTC (Koordinierte Weltzeit) gesetzt. Dadurch wird verhindert, dass Zeitumstellungen zwischen Normalzeit und Sommerzeit eine Stunde hinzufügen oder abziehen und die Tageszahl verfälschen. Aus der Gesamtzahl der Tage ergibt sich die Zahl der Wochen durch Division der Tage durch 7 und Abrunden. Für Stunden, Minuten und Sekunden wird die Tageszahl mit 24, 1.440 beziehungsweise 86.400 multipliziert.
Die Division der Gesamttage durch 365 oder 365,25 ergibt ein ungefähres Alter in Jahren, berücksichtigt jedoch nicht, welche Jahre in diesem Zeitraum Schaltjahre waren. Die Kalenderberechnung ist, wie oben beschrieben, exakt. Für die Frage „Wie alt bin ich?“ sollte das Kalenderalter verwendet werden. Für Aufgaben, die eine präzise verstrichene Zeit benötigen, etwa die zeitliche Planung von Medikamentendosen oder einen Countdown bis zu einem wichtigen Termin, eignen sich die Gesamtzahl der Tage oder Wochen.
Rechenbeispiel
Eine am 1. Januar 2000 geborene Person, deren Alter am 1. Januar 2020 berechnet wird:
| Messgröße | Wert |
|---|---|
| Kalenderalter | 20 Jahre, 0 Monate, 0 Tage |
| Gesamtzahl der Monate | 240 |
| Gesamtzahl der Wochen | 1.043 |
| Gesamtzahl der Tage | 7.305 |
| Gesamtzahl der Stunden | 175.320 |
| Gesamtzahl der Minuten | 10.519.200 |
| Gesamtzahl der Sekunden | 631.152.000 |
| Wochentag der Geburt | Samstag |
Die Gesamtzahl von 7.305 Tagen entspricht 20 × 365 plus 5 Schalttagen für die Schaltjahre 2000, 2004, 2008, 2012 und 2016. Jedes dieser Jahre fügte einen 29. Februar hinzu, der in den Zeitraum von 20 Jahren fällt. Deshalb ist die Tageszahl höher als ein einfaches 20 × 365, und deshalb kann man sich bei der manuellen Berechnung leicht um einige Tage irren.
Formel zur Altersberechnung im Code
Die oben beschriebene Methode zur Berechnung des Kalenderalters lässt sich in den meisten Programmiersprachen umsetzen. Die Verwendung einer integrierten Datumsbibliothek ist sicherer, als die Regeln für Schaltjahre und Monatslängen selbst zu programmieren.
1from dateutil.relativedelta import relativedelta
2from datetime import date
3
4birth, target = date(2000, 1, 1), date(2020, 1, 1)
5
6age = relativedelta(target, birth) # calendar age
7print(f"{age.years}y {age.months}m {age.days}d")
8
9total_days = (target - birth).days # total elapsed days
10print(total_days) # 7305
111const MS_PER_DAY = 86400000;
2
3// Add n months, clamping the day to the target month's last day
4// (31 January + 1 month = 28 February). Date.UTC on its own does not
5// clamp: it would roll that date forward into March.
6function addMonthsUTC(base, n) {
7 const total = base.getUTCMonth() + n;
8 const y = base.getUTCFullYear() + Math.floor(total / 12);
9 const m = ((total % 12) + 12) % 12;
10 const lastDay = new Date(Date.UTC(y, m + 1, 0)).getUTCDate();
11 return Date.UTC(y, m, Math.min(base.getUTCDate(), lastDay));
12}
13
14function calendarAge(birth, target) {
15 let months = (target.getUTCFullYear() - birth.getUTCFullYear()) * 12
16 + (target.getUTCMonth() - birth.getUTCMonth());
17 if (addMonthsUTC(birth, months) > target.getTime()) months -= 1;
18 const anchor = addMonthsUTC(birth, months);
19 return {
20 years: Math.floor(months / 12),
21 months: months % 12,
22 days: Math.floor((target.getTime() - anchor) / MS_PER_DAY),
23 };
24}
25
26const birth = new Date(Date.UTC(2000, 0, 1));
27const target = new Date(Date.UTC(2020, 0, 1));
28
29calendarAge(birth, target); // { years: 20, months: 0, days: 0 }
30Math.floor((target - birth) / MS_PER_DAY); // 7305
311' Whole days between two dates (A1 = birth, B1 = target):
2=B1-A1
3
4' Calendar age in complete years / months / leftover days:
5=DATEDIF(A1, B1, "y") & " years, " & DATEDIF(A1, B1, "ym") & " months, " & DATEDIF(A1, B1, "md") & " days"
6Microsoft warnt, dass das Argument "md" in der Nähe von Monatsgrenzen eine negative Zahl oder eine falsche
Anzahl von Tagen zurückgeben kann, sodass der Teil der Formel für die verbleibenden Tage
nicht immer mit der oben beschriebenen Begrenzungsregel übereinstimmt.
Häufig gestellte Fragen
Wie ermittle ich mein genaues Alter? Geben Sie ein Geburtsdatum ein und lassen Sie als Zieldatum den heutigen Tag eingestellt. Das Ergebnis zeigt das Alter in Jahren, Monaten und Tagen sowie dasselbe Alter als Gesamtzahl der Tage, Wochen, Stunden und Sekunden.
Warum liefern zwei Altersrechner unterschiedliche Ergebnisse? Der Unterschied liegt meist darin, wie die verbleibenden Tage nahe einer Monatsgrenze gezählt werden. Ein Rechner, der am Monatsende das Datum an den kürzeren Monat anpasst, wie oben beschrieben, kann sich um ein oder zwei Tage von einem Rechner unterscheiden, der die verstrichene Zeit einfach durch 30 teilt.
Berücksichtigt die Berechnung Schaltjahre? Ja. Die Gesamtzahl der Tage berücksichtigt jeden 29. Februar, der zwischen den beiden Daten liegt. In einem Jahr ohne 29. Februar wird der Jahrestag einer am Schalttag geborenen Person als 28. Februar, dem letzten Tag dieses Monats, gezählt. Eine am 29. Februar 1996 geborene Person ist am 20. Februar 2023 26 Jahre, 11 Monate und 22 Tage alt. Ihr nächster Geburtstag fällt 8 Tage später auf den 28. Februar 2023.
Kann das Alter für ein Datum in der Vergangenheit oder Zukunft berechnet werden? Ja. Wird als Zieldatum ein zukünftiges Datum festgelegt, zeigt das Ergebnis, wie alt jemand an diesem Tag sein wird. Bei einem vergangenen Zieldatum wird angezeigt, wie alt die Person damals war. Das Geburtsdatum selbst darf nicht in der Zukunft liegen, und das Zieldatum darf nicht vor dem Geburtsdatum liegen.
Beeinflussen Zeitzonen das Ergebnis? Nein. Beide Daten werden vor der Ermittlung der Tageszahl in UTC-Mitternacht umgewandelt. Daher bleibt die Gesamtsumme unabhängig vom Standort der nutzenden Person oder von Zeitumstellungen gleich.
Warum unterscheidet sich die Tageszahl von der Division der Tage durch 365,25? 365,25 ist nur eine durchschnittliche Jahreslänge. Die Zahl berücksichtigt nicht, welche konkreten Jahre im Zeitraum Schaltjahre mit 366 Tagen sind. Das Zählen ganzer Tage zwischen zwei tatsächlichen Kalenderdaten ist exakt.
Quellen
- Python
dateutil—relativedelta, die oben beschriebene Regel für Monate und Tage beim Kalenderalter. - Java-Plattform —
Period.betweenundChronoUnit.DAYS. - Microsoft Excel —
DATEDIF-Funktion. - MDN Web Docs —
Date. - Dershowitz, N. und Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.