ToolActToolAct

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

  1. Saisissez la date de départ
  2. Sélectionnez addition (en avant) ou soustraction (en arrière)
  3. Saisissez la valeur et sélectionnez une unité (jour/semaine/mois/année)
  4. 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

Calculer une échéance à partir d’une date de départ connueChoisissez une date de départ, sélectionnez addition ou soustraction, et appliquez des jours, semaines, mois ou années pour produire une date résultante unique pour les garanties, renouvellements, relances ou estimations de livraison. Le débordement de fin de mois étant géré par l’utilitaire de date du navigateur, les cas limites comme le 31 janvier plus un mois aboutissent au 28 ou 29 février sans aucune recherche côté serveur.
Utiliser les offsets rapides pour les fenêtres de planification courantesAprès l’affichage d’un résultat, les raccourcis +7, +30, +90 jours et +1, +3 mois, +1 an permettent de comparer rapidement des périodes de revue courantes sans ressaisir de valeurs. La date de départ et l’offset choisi restent dans la page ; aucune requête n’est envoyée au backend, les anniversaires, périodes d’essai, demandes de visa ou dates de suivi médical peuvent donc être calculés sur un appareil partagé ou emprunté sans exposer les données saisies.
Se rappeler que l’arithmétique calendaire n’est pas une règle de jours ouvrésL’outil fonctionne avec des dates calendaires et les débordements mois/année via l’utilitaire de date. Il ne tient pas compte des jours fériés, week-ends, calendriers d’entreprise ou des règles d’échéance propres à chaque juridiction. Enregistrez la date de départ, l’offset et la date résultante ensemble pour que le calcul puisse être compris ultérieurement.
Revérifier le débordement de fin de mois comme le 31 janvier plus un moisLorsque le jour de départ dépasse la longueur du mois cible, confirmez comment le calculateur gère le débordement pour que les renouvellements d’abonnement et les anniversaires de contrat ne glissent pas silencieusement vers une autre date. Testez les cas limites comme le 31 janvier plus un mois par rapport à la longueur réelle de février, ou le 31 mars moins un mois par rapport à un février de 31 jours en année bissextile, avant d’utiliser le résultat dans un système de facturation ou de RH.
Associer le résultat à un fuseau horaire pour les équipes distribuéesEnregistrez la date de référence avec un fuseau horaire ou un décalage UTC explicite, car une échéance stockée sans contexte peut décaler d’un jour lorsque des relecteurs d’autres régions la réinterprètent. Par exemple, une date de fin de contrat indiquée « 2026-07-15 » peut représenter des instants très différents pour une équipe à Tokyo et une autre à Los Angeles ; stocker le décalage à côté de la date empêche le glissement silencieux qui survient souvent lors des passations inter-régionales.

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 T1

Soustraire 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 churn

Ajouter 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-20

Bascule 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-17

FAQ

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.