Calculateur de Différence de Dates
Calcule les jours, semaines, mois, années entre deux dates
Calculer l'intervalle entre deux dates
Qu'est-ce qu'un Calculateur de Différence de Dates ?
Un calculateur de différence de dates mesure l’écart entre deux dates du calendrier et l’exprime en jours, semaines, mois approximatifs, années approximatives, ainsi qu’en heures ou minutes. Il sert à vérifier la durée d’un projet, une période de congé, un cycle de facturation, un anniversaire, une durée de conservation ou un intervalle historique simple. Le résultat est une différence entre dates, pas forcément un comptage incluant les deux extrémités : du 1er janvier au 3 janvier, l’écart est normalement de deux jours, sauf règle métier contraire. Les mois et les années sont souvent approximatifs, car les mois n’ont pas tous la même longueur. Pour les jours ouvrés, jours fériés, fuseaux horaires ou délais légaux, utilisez les règles adaptées.
Comment utiliser
Comment utiliser
- Saisissez la date de départ
- Saisissez la date de fin
- Cliquez sur « Calculer l'intervalle » pour comparer les deux dates
- Consultez les résultats : jours, semaines, mois, années, heures, minutes, secondes
Règles de comptage
- Vérifiez si votre tâche nécessite un intervalle exclusif ou un comptage inclusif ; de nombreuses règles métier comptent à la fois les dates de début et de fin.
- Pour les travaux inter-fuseaux horaires, convertissez d'abord les dates dans le même fuseau horaire, surtout lorsque les heures ou les minutes sont importantes.
Cas d’utilisation
Principe technique
La différence exacte en jours est calculée par Math.floor((end.getTime() - start.getTime()) / 86_400_000), où 86 400 000 est le nombre de millisecondes dans une journée de 24 heures sans changement d'heure. Cela donne un intervalle exclusif — du 1er janvier au 3 janvier fait 2 jours, pas 3 — car la soustraction mesure l'écart entre deux instants plutôt que de compter les cases du calendrier. Pour un comptage inclusif (compter les deux extrémités), il faut ajouter 1 au résultat ; de nombreuses règles juridiques, de congés et de facturation l'exigent et cette erreur d'un jour est la cause la plus fréquente de divergences entre les rapports RH et finance. Les semaines sont simplement jours / 7 ; la page affiche aussi heures = jours * 24, minutes = jours * 1440 et secondes = jours * 86 400 comme totaux dérivés. Les différences en mois et années sont délibérément étiquetées « approximatives » car les mois et années calendaires varient en durée. L'approche simple est jours / 30,436875 (mois grégorien moyen) et jours / 365,2425 (année grégorienne moyenne sur un cycle de 400 ans), ce qui convient aux rapports de statut et tableaux de bord mais est inexact pour les contrats. Pour un « X mois complets entre » calendaire précis, l'algorithme soustrait les composantes année x 12 + mois puis décrémente de 1 si le jour de fin est antérieur au jour de début — c'est ainsi que la plupart des bibliothèques de dates (differenceInMonths de date-fns, $.diff('month') de dayjs, Duration.from de Temporal) le calculent. Le calcul d'années a la même particularité : du 29/02/2024 au 28/02/2025 est parfois compté comme 1 an (en ajustant au dernier jour du mois) et parfois comme 0 an 11 mois et 30 jours, selon la convention. Les années bissextiles suivent la règle grégorienne (divisibles par 4, sauf les siècles non divisibles par 400, donc 1900 = commune, 2000 = bissextile, 2024 = bissextile). Un intervalle incluant le 29 février gagne automatiquement un jour supplémentaire car le comptage de jours est ancré sur les millisecondes depuis l'époque, pas sur les champs calendaires. La gestion des fuseaux horaires est critique lorsque les deux extrémités sont à une résolution inférieure au jour : la soustraction de deux valeurs Date construites à partir de chaînes en heure locale peut être décalée du décalage UTC local, et un intervalle traversant un changement d'heure peut faire 23 ou 25 heures plutôt que les 24 nominaux. Le problème Y2038 (débordement du time_t Unix signé 32 bits le 2038-01-19T03:14:07Z) n'affecte pas cette page car JavaScript Date utilise un flottant 64 bits capable de représenter des dates jusqu'à environ 100 millions de jours de part et d'autre de l'époque, mais les systèmes aval écrit en C 32 bits nécessitent encore une attention particulière.
- Jours exacts = Math.floor((end - start) / 86_400_000) ; 86,4 M ms par jour sans changement d'heure.
- Le résultat est exclusif par défaut : 1er jan au 3 jan = 2 jours ; ajouter 1 pour un comptage inclusif (les deux extrémités).
- Le mois approximatif utilise une moyenne de 30,436875 jours ; l'année utilise 365,2425 jours sur le cycle grégorien de 400 ans.
- Différence de mois calendaire précise : (a2-a1)*12 + (m2-m1) puis -1 si jour de fin < jour de début — correspond à differenceInMonths de date-fns.
- Années bissextiles : divisibles par 4, sauf les siècles qui doivent être divisibles par 400 (1900 non, 2000 oui, 2024 oui).
- Les transitions d'heure d'été créent des journées calendaire de 23h et 25h ; une soustraction de 24h peut ne pas égaler un jour calendaire.
- JavaScript Date est un flottant 64 bits, immunisé contre le Y2038 Unix (débordement time_t 32 bits le 2038-01-19 03:14:07 UTC).
Exemples
Deux années calendaires complètes (2025-01-01 à 2026-12-31)
Début : 2025-01-01
Fin : 2026-12-31
Jours : 730
Semaines : 104,29
Mois : ~24,00 (approx)
Années : ~2,00 (approx)
Note : 2028 est la prochaine année bissextile dans l'intervalle, donc la plage inclut le 29 fév 2028 si étendue.Court intervalle (3 jours)
Début : 2026-06-11
Fin : 2026-06-14
Jours : 3
Heures : 72
Minutes : 4320
Secondes : 259200
Décompte inclusif (compter les deux extrémités) : 4 joursDurée de projet à cheval sur une année
Début : 2026-01-15 (lancement)
Fin : 2026-07-20 (mise en production)
Jours : 186
Semaines : 26,57
Mois : ~6,16
Cas d'usage : Rapports d'avancement, rétrospective, résumé GanttCalcul d'âge en jours
Anniversaire : 1995-03-15
Aujourd'hui : 2026-06-11
Jours vécus : 11 411
Années (approx): 31,24
Mois : ~374,9
Utile lorsqu'un nombre de jours exact est nécessaire (ex. jalons)Mise en garde fuseaux horaires (Tokyo vs Los Angeles)
La même date calendaire « 2026-07-15 » correspond à des instants réels différents :
Tokyo (UTC+9) -> 2026-07-15 00:00 = 2026-07-14 15:00 UTC
Los Angeles (UTC-7) -> 2026-07-15 00:00 = 2026-07-15 07:00 UTC
Différence en cas d'usage naïf : environ 16 heures, suffisant pour basculer un résultat d'un jour.
Correctif : convertir les deux dates dans le même fuseau avant de soustraire.FAQ
Comment la différence entre deux dates est-elle calculée ?
Par arithmétique calendaire : le résultat est affiché en années, mois et jours, plus le total exprimé en semaines, jours, heures, minutes et secondes. Les années et les mois sont calculés sur la base d'anniversaires (le compteur d'années n'augmente qu'après le passage du même mois/jour) et les jours correspondent au nombre de jours calendaires séparant les deux dates.
Pourquoi années + mois + jours ne s'additionnent-ils pas proprement au total des jours ?
Parce que les mois font 28 à 31 jours. « 1 an, 2 mois, 5 jours » ne représente pas le même nombre total de jours selon que les mois concernés font 28, 29, 30 ou 31 jours. Le champ « total des jours » utilise l'arithmétique calendaire brute et constitue le chiffre le plus précis.
Le jour de départ est-il inclus ou exclu ?
La page rapporte le décompte hors date de départ — deux dates identiques affichent 0 jour de différence. Si vous avez besoin d'un comptage « inclusif » (par exemple pour des nuits d'hôtel), ajoutez 1 manuellement au résultat.
Les week-ends ou jours fériés sont-ils exclus ?
Non. Cette page compte chaque jour calendaire. Pour des différences en jours ouvrés (en sautant les week-ends et éventuellement les jours fériés), utilisez l'outil « Calculateur de jours ouvrés ».
Pourquoi la composante horaire paraît-elle décalée après un changement d'heure ?
La portion heures/minutes utilise du temps absolu : franchir un changement d'heure d'été ajoute ou retire une heure au champ heure du jour. Le décompte des jours, lui, n'est pas affecté car les différences de jours sont calendaires.
Quelle est la plage maximale de dates comparables ?
Le type Date de JavaScript couvre ± 100 000 000 jours autour de l'époque Unix : tout couple de dates passées ou futures dans une fourchette d'environ ± 271 000 ans fonctionne. Les dates antérieures à 1582 utilisent une arithmétique grégorienne proleptique, qui diffère du calendrier local en vigueur à l'époque.
Le calcul est-il effectué localement ?
Oui. Les deux dates et le résultat restent dans votre navigateur. Rien n'est téléversé ni journalisé.