Calculateur d'Ajout/Soustraction de Dates
Ajoute ou soustrait des jours, semaines, mois, années à une date
Ajouter ou soustraire des jours à une date
Qu'est-ce qu'un Calculateur d'Ajout/Soustraction de Dates ?
Un calculateur d’ajout ou de soustraction de dates trouve une date cible en avançant ou en reculant une date de départ d’un nombre de jours, semaines, mois ou années. Il sert pour les renouvellements, relances, échéances de contrat, garanties, rappels et plannings de projet sans compter manuellement sur un calendrier. La difficulté ne vient pas seulement de l’addition, mais des limites réelles du calendrier : les mois n’ont pas tous la même durée, les années bissextiles modifient février, et le 31 janvier n’a pas toujours d’équivalent le mois suivant. L’outil donne un résultat rapide pour l’organisation. Il ne remplace pas les règles de jours ouvrés, jours fériés ou délais légaux.
Comment utiliser
Comment utiliser
- Saisissez la date de départ
- Sélectionnez addition (en avant) ou soustraction (en arrière)
- Saisissez la valeur et sélectionnez une unité (jour/semaine/mois/année)
- Cliquez sur « Calculer le résultat » pour voir la date cible
Règles de dates
- Les calculs de mois et d'année peuvent aboutir à des mois plus courts ; vérifiez comment votre règle métier gère les dates comme le 31 janvier plus un mois.
- Pour les délais, confirmez si les week-ends, jours fériés ou coupures de fin de journée doivent modifier la date finale.
Cas d’utilisation
Principe technique
L'arithmétique des dates dans cet outil repose sur le calendrier grégorien proleptique tel qu'implémenté par l'objet Date d'ECMAScript. Les mois en JavaScript sont indexés à partir de 0 (janvier = 0, décembre = 11), ce qui constitue la source principale d'erreurs de décalage d'une unité dans le code de dates. L'addition de jours est simple : new Date(d.getTime() + n * 86_400_000). L'addition de mois est plus délicate car les mois comptent 28, 29, 30 ou 31 jours : l'idiome standard date.setMonth(date.getMonth() + n) provoque un débordement lorsque le mois résultant est plus court que le jour source, ainsi le 31 janvier + 1 mois donne le 3 mars et non le 28 février (le moteur reporte les 3 jours supplémentaires en mars). Cet outil détecte le débordement en comparant date.getMonth() après setMonth et ramène le jour au dernier jour du mois cible lorsque nécessaire, reproduisant le comportement de moment.js, date-fns et Plain Date.add() de Temporal. Les années bissextiles suivent la règle grégorienne standard : une année est bissextile si elle est divisible par 4, sauf pour les siècles qui doivent aussi être divisibles par 400. Ainsi 1900 et 2100 sont des années communes, tandis que 2000 était bissextile et 2024 l'est aussi. Cela compte dès qu'un calcul traverse le 29 février : 29 janvier + 1 mois + 1 mois en 2023 donne le 29 mars, mais en 2024 le report tombe sur le 29 février (une date valide) puis le 29 mars, sans ajustement nécessaire. La coupure de 1582 pour la transition julien-grégorien est ignorée ici car le grégorien proleptique étend les règles indéfiniment vers le passé ; les dates antérieures au 15 octobre 1582 sont techniquement anachroniques mais restent correctes pour un usage moderne. La gestion des fuseaux horaires est une dimension séparée : Date stocke un instant UTC en interne et applique le fuseau horaire IANA du système hôte (par ex. America/New_York, Asia/Shanghai) uniquement lors de l'appel à .getDate(), .getMonth() ou .toLocaleString(). Deux pièges en découlent : (1) une date construite à partir d'une chaîne ISO sans suffixe Z ("2026-06-10") est interprétée comme minuit UTC, mais "2026-06-10T00:00:00" sans le Z est interprétée comme minuit heure locale, et le même date.getDate() peut renvoyer 9 ou 10 selon le décalage de l'utilisateur ; (2) les transitions d'heure d'été au printemps (saut de 02h00-03h00) et à l'automne (répétition de 01h00-02h00) rendent certaines opérations ambiguës, donc une addition de "+24 heures" peut atterrir sur une heure murale éloignée de 23 ou 25 heures. Pour l'arithmétique en jours ouvrés, jours de semaine ou tenant compte des jours fériés, le résultat calendrier doit être post-traité avec une liste de fériés spécifique à la région (par ex. via le package npm date-holidays ou un calendrier personnalisé) plutôt que de se fier au simple report.
- Les mois de Date en JS sont indexés à 0 : janvier = 0, décembre = 11 ; le décalage d'une unité est l'erreur la plus fréquente.
- Débordement de setMonth : 31 jan + 1 mois donne le 3 mars, pas le 28 février ; l'outi ajuste au dernier jour du mois en comparant getMonth() après setMonth.
- Année bissextile : divisible par 4, mais les siècles doivent aussi être divisibles par 400 (donc 1900 non, 2000 oui, 2024 oui).
- ISO 8601 sans Z ("2026-06-10T00:00:00") est interprété en heure locale ; avec Z c'est UTC - getDate() peut renvoyer des jours différents.
- Les transitions d'heure d'été créent des journées de 23h et 25h ; une addition de +24h ne correspond pas toujours à +1 jour calendaire.
- Le calcul au niveau jour est exact via getTime() + n * 86_400_000 ; les unités supérieures passent par setMonth/setFullYear avec ajustement.
- L'arithmétique en jours ouvrés et jours fériés doit être ajoutée par dessus via un calendrier régional - pas dans le moteur lui-même.
Exemples
Ajouter 90 jours à une date de début (essai / revue OKR)
Date de début : 2026-01-15 (jeudi)
Opération : + 90 jours
Résultat : 2026-04-15 (mercredi)
Cas d'usage : Fin de période d'essai 90 jours, revue OKR T1Soustraire 6 mois à aujourd'hui
Date de début : 2026-06-11
Opération : - 6 mois
Résultat : 2025-12-11
Cas d'usage : Rétrospective sur six mois pour analyse de renouvellement ou de churnAjouter 2 ans 3 mois 5 jours (expiration de visa)
Date de début : 2026-01-15
Étape 1 : + 2 ans -> 2028-01-15
Étape 2 : + 3 mois -> 2028-04-15
Étape 3 : + 5 jours -> 2028-04-20
Résultat : 2028-04-20Bascule de fin de mois : 31 jan + 1 mois
Date de début : 2026-01-31
Opération : + 1 mois
Résultat : 2026-02-28 (février a 28 jours en 2026)
Vérification année bissextile :
Date de début : 2028-01-31
Opération : + 1 mois
Résultat : 2028-02-29 (2028 est une année bissextile)Soustraire 14 jours pour un rappel de facturation
Renouvellement d'abonnement : 2026-07-01
Opération : - 14 jours
Envoyer le rappel le : 2026-06-17FAQ
Comment l'ajout de « mois » fonctionne-t-il pour les fins de mois ?
Les mois n'ont pas tous le même nombre de jours, donc ajouter 1 mois au 31 janvier est ambigu. Le calculateur suit la convention standard : on ramène au dernier jour du mois cible — 31 janvier + 1 mois = 28 février (ou 29 les années bissextiles). Cela correspond à la fonction EDATE d'Excel.
Les week-ends et les jours fériés sont-ils comptés ?
Par défaut, oui — « ajouter 5 jours » ajoute 5 jours calendaires. Pour les calculs en jours ouvrés (en sautant les week-ends et éventuellement les jours fériés), utilisez l'outil dédié « Calculateur de jours ouvrés » ; cette page traite l'arithmétique calendaire brute.
Puis-je ajouter des années, des mois, des semaines et des jours en même temps ?
Oui. Le résultat les applique dans l'ordre années → mois → semaines → jours, qui est la convention adoptée par la plupart des bibliothèques de dates, y compris la proposition Temporal de JavaScript. Cet ordre compte : « 1 mois et 30 jours » ajouté au 1er janvier ne donne pas la même date que « 30 jours et 1 mois ».
Comment l'heure d'été est-elle gérée ?
Le calcul opère sur des dates calendaires, pas sur du temps absolu : ajouter « un jour » à travers un changement d'heure produit donc la même heure locale du jour. Si vous avez besoin d'arithmétique précise à 24 heures, basculez l'unité sur les heures plutôt que sur les jours.
Quelle plage de dates est prise en charge ?
Le type Date de JavaScript couvre ± 100 000 000 jours autour de 1970, soit approximativement les années -271 821 à 275 760. Le calculateur gère toute date historique ou très future dans cette plage. Pour les dates antérieures à la réforme du calendrier grégorien (1582), gardez à l'esprit que les calendriers civils locaux diffèrent.
Pourquoi soustraire deux dates est-il différent d'ajouter un nombre de jours négatif ?
Cela ne l'est pas — soustraire N jours équivaut à ajouter -N. Si vous voulez la différence entre deux dates, utilisez l'outil « Différence entre dates ». Cette page fait de l'arithmétique à sens unique : date de départ plus ou moins une durée.
Mes données sont-elles téléversées ?
Non. Le calcul s'exécute dans votre navigateur. Les saisies sont effacées au rafraîchissement de la page.