Calculateur d'écart entre dates

Calculez l'écart exact entre deux dates en années, mois, jours et totaux.

Comment ça marche

Choisissez une date de début et une date de fin et le calculateur renvoie l'écart de deux façons : sous forme calendaire (« 3 ans, 7 mois, 12 jours ») et en totaux bruts (jours, semaines, mois). La forme calendaire correspond à la manière dont on parle des durées au quotidien — « on est ensemble depuis 3 ans et 4 mois » — tandis que les totaux servent quand on doit injecter un nombre unique dans un calcul, planifier un projet ou borner un contrat.

La formule

années = fin.année − début.année mois = fin.mois − début.mois jours = fin.jour − début.jour Si jours < 0 : mois -= 1 ; jours += jours du mois précédent Si mois < 0 : années -= 1 ; mois += 12

Les jours totaux viennent de la différence en millisecondes entre les deux dates, divisée par 86 400 000 (ms/jour) puis floor. Semaines = floor(jours / 7). Mois totaux ≈ années × 12 + mois issus du parcours calendaire. Années bissextiles et passage à l'heure d'été/hiver sont gérés par l'arithmétique des Date — si l'instant de fin est ne serait-ce qu'une seconde avant l'heure de début, le total est inférieur d'un jour à ce qu'on pourrait croire.

Exemple de calcul

  • Date de début 01-01-2000, date de fin 28-04-2024.
  • Années = 2024 − 2000 = 24. Mois = 4 − 1 = 3. Jours = 28 − 1 = 27. Pas de retenue nécessaire.
  • Résultat : 24 ans, 3 mois, 27 jours. Jours au total ≈ 8 884. Semaines au total ≈ 1 269. Mois au total ≈ 291.

Questions fréquentes

Pourquoi la décomposition a/m/j ne correspond-elle pas aux jours totaux attendus ?

Parce que les mois n'ont pas un nombre fixe de jours. « 1 mois » peut faire de 28 à 31 jours. La décomposition a/m/j suit le parcours calendaire (la façon dont on parle) ; le total de jours est le décompte littéral en millisecondes divisé par 86 400 000. Les deux sont corrects, ils répondent à des questions différentes.

Puis-je obtenir l'écart en heures ou en secondes ?

Pas encore — les champs date n'ont qu'une précision au jour, donc des unités infra-journalières seraient trompeuses. Pour ce niveau de détail, multipliez le total de jours : heures totales = jours × 24, secondes totales = jours × 86 400. Une variante date-et-heure pourra être ajoutée plus tard.

Pourquoi indique-t-il « La date de début doit être antérieure ou égale à la date de fin » ?

Parce qu'une durée négative n'a pas grand sens ici. Pour savoir « il y a combien de temps », inversez les dates : la plus ancienne en premier. Le calcul fonctionne dans les deux sens, mais l'interface refuse simplement de rendre des nombres négatifs.

Calculatrices associées