"Soustrayez l'année de naissance de l'année actuelle" fonctionne comme estimation rapide, mais se trompe deux jours sur trois : si votre anniversaire n'est pas encore passé cette année, cette soustraction donne un âge supérieur d'un an à la réalité.
Le calcul correct
Calculer un âge exact en années, mois et jours nécessite de comparer les trois parties de la date, pas seulement l'année :
- On calcule la différence d'années.
- Si le mois et le jour actuels sont antérieurs au mois et au jour de naissance, on soustrait une année à ce résultat (l'anniversaire "n'est pas encore arrivé").
- On calcule les mois et jours restants en empruntant au mois/à l'année précédente quand le jour actuel est inférieur au jour de naissance — le même mécanisme qu'une retenue dans une soustraction posée.
Le calculateur d'âge exact applique cet ajustement automatiquement et fournit en plus le total en jours, semaines et heures — utile pour les démarches qui demandent l'âge dans une unité autre que "l'année".
Le cas du 29 février
Qui naît une année bissextile a un vrai problème de calendrier : son anniversaire n'existe que tous les 4 ans. La convention la plus répandue (et celle qu'utilisent la plupart des systèmes juridiques et administratifs) consiste à traiter le 28 février ou le 1er mars comme l'anniversaire "effectif" les années non bissextiles, selon la juridiction. Si votre application calcule la majorité légale ou des échéances à partir d'une date de naissance du 29 février, mieux vaut décider explicitement quelle convention utiliser — plutôt que de la laisser implicite et de redécouvrir le bug tous les quatre ans.
Fuseaux horaires : pourquoi "aujourd'hui" n'est pas pareil partout
Si votre application calcule l'âge côté serveur avec la date du serveur, et que l'utilisateur est dans un autre fuseau horaire, il peut y avoir un décalage allant jusqu'à un jour près de minuit. Pour les calculs d'âge à portée légale (vérification de majorité, par exemple), mieux vaut utiliser la date locale de l'utilisateur plutôt que celle du serveur — ou du moins être conscient de l'endroit où ça peut poser problème. Pour convertir entre fuseaux horaires afin de déboguer ce genre de cas, le convertisseur de fuseaux horaires aide à visualiser le décalage.
L'âge en mois pour les bébés
Un cas particulier : l'âge d'un bébé s'exprime presque toujours en mois, pas en années ("il a 7 mois"), et là le même algorithme années/mois/jours s'applique mais en n'affichant que la partie mois et jours — sans arrondir à "presque 1 an", ce qui est justement la source de la plus grande confusion dans les carnets de vaccination et les visites de suivi.

