Âge exact

Calculer un âge en années, mois et jours à une date de référence choisie.

Calendrier grégorien, dates civiles de 0001 à 9999, sans heure ni fuseau horaire. Les anniversaires mensuels restent ancrés sur le jour de naissance, limité au dernier jour des mois plus courts. Le 29 février devient le 28 février les années non bissextiles. Convention de calcul, pas une détermination d’âge légal. Exemple : du 31 janvier au 29 février 2024 = 0 an, 1 mois, 0 jour.

Vos dates et horaires restent dans votre navigateur et ne sont pas enregistrés.

Méthode et hypothèses

Version de méthode 1.0.0 · Mise à jour

Âge à une date

Formule: Mois calendaires complets → années + mois ; reste en jours

Calendrier grégorien, dates civiles de 0001 à 9999, sans heure ni fuseau horaire. Les anniversaires mensuels restent ancrés sur le jour de naissance, limité au dernier jour des mois plus courts. Le 29 février devient le 28 février les années non bissextiles. Convention de calcul, pas une détermination d’âge légal. Exemple : du 31 janvier au 29 février 2024 = 0 an, 1 mois, 0 jour.

birth
Date de naissance
reference
Date de référence

Calendrier grégorien de 0001 à 9999. Les conventions de date, de durée et d’arrondi sont précisées pour chaque mode.

Reproduire le calcul en code

Ces exemples utilisent les mêmes entrées et le même calcul de base que cet outil. Adaptez la validation et le formatage à votre application.

JavaScript
const birth = new Date('2000-01-15T00:00:00Z');
const today = new Date('2026-01-20T00:00:00Z');
let years = today.getUTCFullYear() - birth.getUTCFullYear();
if (today.getUTCMonth() < birth.getUTCMonth() || (today.getUTCMonth() === birth.getUTCMonth() && today.getUTCDate() < birth.getUTCDate())) years--;
console.log(years); // 26 complete years
TypeScript
const birth = new Date('2000-01-15T00:00:00Z');
const today = new Date('2026-01-20T00:00:00Z');
let years: number = today.getUTCFullYear() - birth.getUTCFullYear();
if (today.getUTCMonth() < birth.getUTCMonth() || (today.getUTCMonth() === birth.getUTCMonth() && today.getUTCDate() < birth.getUTCDate())) years--;
console.log(years); // 26 complete years
Python
from datetime import date
birth, today = date(2000, 1, 15), date(2026, 1, 20)
years = today.year - birth.year - ((today.month, today.day) < (birth.month, birth.day))
print(years)  # 26 complete years
Java
var birth = java.time.LocalDate.of(2000, 1, 15);
var today = java.time.LocalDate.of(2026, 1, 20);
System.out.println(java.time.Period.between(birth, today).getYears()); // 26
C#
var birth = new DateOnly(2000, 1, 15);
var today = new DateOnly(2026, 1, 20);
int years = today.Year - birth.Year - (today < birth.AddYears(today.Year - birth.Year) ? 1 : 0);
Console.WriteLine(years); // 26