Ajouter des mois à une date
Ajoutez des mois entiers à une date et obtenez le jour qui en découle au calendrier : le 31 janvier 2024 plus 1 mois donne le 29 février 2024, car un jour inexistant passe au dernier jour du mois. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Date
- 2024-01-31
- Mois
- 1
- Résultat
- 2024-02-29
- Année
- 2 024
- Mois
- 2
- Jour
- 29
Ce calculateur d'ajout de mois à une date prend une seule date calendaire grégorienne au format AAAA-MM-JJ et un nombre entier non négatif de mois, puis renvoie le jour calendaire situé ce nombre de mois plus tard. Parmi les vérifications classiques : 2024-01-31 plus un mois tombe sur 2024-02-29 lors d'une année bissextile, 2023-01-31 plus un mois tombe sur 2023-02-28 lors d'une année commune, et 2024-03-15 plus trois mois tombe sur 2024-06-15 sans plafonnement. Le moteur utilise uniquement une arithmétique grégorienne proleptique déterministe : il vérifie que le jour de base existe réellement sur le calendrier, décale l'année et le mois du nombre demandé, plafonne le jour au dernier jour valide du mois cible lorsque le jour d'origine dépasserait cette limite, et renvoie un résultat structuré sans appel réseau, échantillonnage aléatoire, ni horloge hôte.
Ce que signifie l'ajout de mois et ce que contient la réponse
Ajouter des mois calendaires entiers répond à une question différente de l'ajout d'un nombre fixe de jours ou du comptage de périodes ouvrées : cela fait avancer l'année et le mois sur le calendrier civil grégorien tout en conservant le même jour du mois lorsque ce jour existe, et en plafonnant au dernier jour du mois cible lorsqu'il n'existe pas.
Vous fournissez une date de base sous forme de chaîne stricte AAAA-MM-JJ et une valeur months entière non négative ; zéro laisse la date inchangée, un avance vers le même jour nominal le mois suivant lorsque c'est possible, et des valeurs plus grandes traversent automatiquement les limites d'année.
Les cas classiques de fin de mois sont explicites : le 31 janvier plus un mois devient le 28 ou le 29 février selon l'année bissextile, le 31 mars plus un mois devient le 30 avril, et le 31 mai plus un mois devient le 30 juin.
Si vous avez besoin de soustraction de jours, de jours ouvrés, de conversion d'époque, d'analyse multi-format, ou de numéros de semaine ISO, utilisez ces outils dédiés ; cette page ne répond qu'à la date grégorienne ultérieure après ajout de mois entiers à une base ISO validée, avec plafonnement au dernier jour du mois.
Où les dates décalées en mois s'inscrivent dans la facturation, les renouvellements et le logiciel
Les équipes d'exploitation et de finance ajoutent des mois lorsqu'un abonnement se renouvelle tous les trois mois calendaires, lorsqu'une date d'échéance de facture est définie comme un mois après l'émission, ou lorsqu'une fenêtre de garantie est de douze mois après une date d'expédition relative à un horodatage de base fixe plutôt qu'à une horloge en direct.
Les analystes construisant des fenêtres de cohorte utilisent le même déplacement pour étiqueter des périodes d'observation qui commencent à un jour connu et se terminent un nombre fixe de mois plus tard, évitant les erreurs de décalage d'un jour en fin de mois et lors des années bissextiles.
Enseignants et rédacteurs de normes utilisent l'outil pour démontrer le comportement de plafonnement, comme 2024-01-31 plus un mois lors d'une année bissextile face à 2023-01-31 plus un mois lors d'une année commune, sans dépendre de numéros de série de tableur qui diffèrent d'un produit à l'autre. Associez-le à la soustraction de jours, la conversion d'époque, la normalisation de date, ou les auxiliaires de semaine ISO lorsque vous avez besoin de pas calendaires apparentés, et aux autres outils déterministes gratuits pour bâtir un petit laboratoire d'utilitaires de date.
Cas d’usage
Cycles d'abonnement et de facturation
Projetez la prochaine date de renouvellement ou d'échéance de facture N mois après une date d'émission validée, avec les jours de fin de mois correctement plafonnés.
Plafonds de fin de mois et de jour bissextile
Vérifiez que le 31 janvier plus un mois tombe sur le 29 février uniquement les années bissextiles, et sur le 28 février les années communes, sans les bizarreries de Date.
Questions fréquentes
Combien coûte le calculateur d'ajout de mois à une date ?
Il est gratuit dans votre navigateur sur cette page.
Comment la date ultérieure est-elle définie ?
Le moteur ajoute un nombre entier non négatif de mois calendaires grégoriens à une base AAAA-MM-JJ validée, en conservant le même jour du mois lorsque c'est possible et en plafonnant au dernier jour valide du mois cible sinon.
Que se passe-t-il avec les fins de mois et les années bissextiles ?
Les longueurs de mois et les jours bissextiles sont vérifiés et appliqués. Par exemple, 2024-01-31 plus 1 mois donne 2024-02-29, tandis que 2023-01-31 plus 1 mois donne 2023-02-28. Le champ clamped est vrai lorsque le jour a été réduit.
Quels formats de date et valeurs de mois sont acceptés ?
Seules les dates calendaires strictes AAAA-MM-JJ pour la base, et une valeur entière months de 0 à 119988.
Cet outil convertit-il des fuseaux horaires ou utilise-t-il l'horloge actuelle ?
Non. Il ne fait correspondre qu'une date calendaire validée plus N mois entiers avec une arithmétique pure. Il n'y a aucun objet Date, aucun décalage de fuseau horaire, ni dépendance à « aujourd'hui ».
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/date/add-months \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2024-01-31","months":1}'const res = await fetch("https://api.kit.forhosting.com/date/add-months", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2024-01-31",
"months": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/add-months",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2024-01-31",
"months": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/add-months", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2024-01-31","months":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2024-01-31","months":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/add-months", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"date": "2024-01-31",
"months": 1
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.add_months",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
year_min | 1 |
year_max | 9999 |
months_min | 0 |
months_max | 119988 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Ce que signifie l'ajout de mois et ce que contient la réponse
Le calculateur vérifie que le jour de base est un jour calendaire réel — le 29 février uniquement les années bissextiles, trente jours en avril, jamais le trente-deux — puis renvoie la date de base normalisée, le nombre de mois utilisé, le résultat ultérieur sous forme result au format AAAA-MM-JJ, les champs year, month et day du résultat, un booléen clamped vrai lorsque le jour a été réduit, days_in_result_month pour la longueur du mois cible, les composantes de base base_year, base_month et base_day pour un chaînage facile, et un court rappel de formule. Il n'y a aucun début de semaine dépendant de la locale, aucune approximation flottante d'une longueur de mois en jours, et aucune dépendance à l'objet Date de l'hôte : soit l'entrée est un jour calendaire réel avec un nombre de mois dans la plage valide et la date ultérieure est entièrement déterminée, soit la requête échoue avec invalid_input. Les cas rejetés incluent un champ date ou months manquant, des formats erronés tels que 2024/01/31, des mois impossibles, des jours inexistants tels que 2023-02-29, des comptes de mois négatifs, et des résultats dont l'année sortirait de la fenêtre prise en charge de un à 9999.
Comment la date et le nombre de mois sont lus et comment le résultat reste reproductible
La chaîne doit correspondre à quatre chiffres, un trait d'union, deux chiffres, un autre trait d'union, et deux chiffres ; les espaces en début ou fin sont supprimés, mais les dates partielles, le jour de l'année ordinal seul, et les noms de mois ne sont pas développés ici. Après analyse, l'année doit être comprise entre 1 et 9999, le mois entre 1 et 12, et le jour entre 1 et la véritable longueur de ce mois cette année-là, les années bissextiles suivant la règle grégorienne : divisible par quatre sauf les années séculaires non divisibles par quatre cents. En interne, le moteur convertit l'année et le mois civils en un index de mois de base zéro avec année fois douze plus mois moins un, ajoute le nombre entier de mois, puis récupère l'année et le mois cibles et plafonne le jour d'origine au nombre de jours dans ce mois cible — une arithmétique entière pure et stable au bit près d'un environnement d'exécution à l'autre. Le champ de base privilégié est date, mais les alias iso_date, d, value et base sont acceptés afin que tableurs, chaînes de requête et formulaires typés puissent réutiliser le même contrat sans renommer de colonnes. Le champ months, avec les alias n, count et add, doit être un entier de 0 à 119988 ; les signes plus initiaux facultatifs sur les chaînes de chiffres sont autorisés, tandis que les décimales, les nombres négatifs et les jetons non numériques sont rejetés avec un message clair afin qu'une cellule erronée ne devienne pas une mauvaise date ultérieure. Associez l'exécution gratuite dans le navigateur de cette page à l'API payante lorsque vous avez besoin de la même date décalée au sein d'un pipeline automatisé.
Où les dates décalées en mois s'inscrivent dans la facturation, les renouvellements et le logiciel
Sur cette page, le travail s'exécute entièrement dans votre navigateur ; via l'API, chaque recherche réussie coûte $0.002, une validation échouée n'est pas facturée, et rien n'est conservé après le renvoi de la réponse. Cette séparation — exploration interactive gratuite et API payante identique — s'inscrit dans le reste du catalogue de niveau A du KIT et permet de passer d'une vérification ponctuelle à un pipeline sans changer le résultat mathématique.
Cas d'intégration
Fixtures de test déterministes
Générez des chaînes ISO décalées en mois reproductibles pour tests unitaires, vérifications de propriétés et assertions CI, sans dépendre de Date ou de l'horloge hôte.