"Zieh das Geburtsjahr vom aktuellen Jahr ab" funktioniert als grobe Schätzung, liegt aber an zwei von drei Tagen im Jahr daneben: Wenn der Geburtstag dieses Jahr noch nicht war, ergibt diese Subtraktion ein Alter, das ein Jahr zu hoch ist.
Die korrekte Berechnung
Ein genaues Alter in Jahren, Monaten und Tagen zu berechnen bedeutet, alle drei Teile des Datums zu vergleichen, nicht nur das Jahr:
- Die Jahresdifferenz wird berechnet.
- Sind der aktuelle Monat und Tag früher als Geburtsmonat und -tag, wird ein Jahr von diesem Ergebnis abgezogen (der Geburtstag "ist noch nicht da").
- Die verbleibenden Monate und Tage werden berechnet, wobei bei Bedarf vom vorherigen Monat/Jahr "geliehen" wird, wenn der aktuelle Tag kleiner ist als der Geburtstag — derselbe Mechanismus wie beim schriftlichen Subtrahieren mit Übertrag.
Der Alter-Rechner übernimmt diese Anpassung automatisch und liefert zusätzlich die Gesamtsumme in Tagen, Wochen und Stunden — nützlich für Formulare, die das Alter in anderen Einheiten als "Jahren" verlangen.
Der Fall des 29. Februar
Wer in einem Schaltjahr geboren wurde, hat ein echtes Kalenderproblem: Der Geburtstag existiert nur alle 4 Jahre. Die verbreitetste Konvention (und die, die die meisten Rechts- und Verwaltungssysteme nutzen) ist, je nach Rechtsordnung den 28. Februar oder den 1. März als "effektiven" Geburtstag in Nicht-Schaltjahren zu behandeln. Wenn deine Anwendung Volljährigkeit oder Fristen aus einem Geburtsdatum vom 29. Februar berechnet, lohnt es sich, explizit zu entscheiden, welche Konvention gilt — statt es implizit zu lassen und den Bug alle vier Jahre neu zu entdecken.
Zeitzonen: warum "heute" nicht überall dasselbe ist
Wenn deine App das Alter serverseitig mit dem Serverdatum berechnet und der Nutzer in einer anderen Zeitzone ist, kann es nahe Mitternacht zu einer Abweichung von bis zu einem Tag kommen. Für Altersberechnungen, die rechtlich relevant sind (etwa Altersverifikation), sollte man das lokale Datum des Nutzers verwenden, nicht das des Servers — oder zumindest wissen, wo es schiefgehen kann. Um solche Fälle zum Debuggen zwischen Zeitzonen umzurechnen, hilft der Zeitzonen-Umrechner, den Versatz zu visualisieren.
Alter in Monaten bei Babys
Ein Sonderfall: Das Alter eines Babys wird fast immer in Monaten angegeben, nicht in Jahren ("sie ist 7 Monate alt"), und dort kommt derselbe Jahre/Monate/Tage-Algorithmus zum Einsatz, zeigt aber nur den Monats- und Tagesanteil — ohne auf "fast 1 Jahr" aufzurunden, was in Impfpässen und bei Vorsorgeuntersuchungen die meiste Verwirrung stiftet.

