Ajouter des années à une date
Ajoutez ou retirez des années entières : le 15 mars 2024 plus 2 ans donne le 15 mars 2026. Un 29 février devient le 28 les années non bissextiles, donc le 29 février 2024 plus 1 an donne le 28 février 2025. 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-03-15
- Années
- 2
- Résultat
- 2026-03-15
- Année
- 2 026
- Mois
- 3
- Jour
- 15
Décaler une date civile d'un nombre entier d'années est une opération courante qui bute encore sur les jours bissextiles lorsque la base est le vingt-neuf février. Les systèmes RH renouvellent les contrats aux anniversaires, les services de garantie calculent les échéances après un achat, les équipes financières projettent des jalons fiscaux, et les auteurs de programmes ont besoin d'un oracle fiable qui rejette les bases impossibles telles que le vingt-neuf février en année commune. Cet outil accepte une date de base ISO stricte au format année-mois-jour plus un décalage d'années entier (positif, négatif ou zéro), vérifie que le jour de base existe vraiment selon les règles grégoriennes bissextiles, avance ou recule l'année et, lorsque la base est le vingt-neuf février et que l'année cible n'est pas bissextile, ramène le jour au vingt-huit février pour que le résultat reste une date civile réelle.
Comment l'ajout d'années civiles fonctionne sans horloge
Parte d'une date de calendrier écrite en année, mois et jour sous la forme ISO internationale avec tirets et largeurs fixes pour que chaque client s'accorde sur les mêmes trois entiers.
Confirmez que l'année se situe dans une plage grégorienne pratique de l'année un à neuf mille neuf cent quatre-vingt-dix-neuf, que le mois est entre un et douze, et que le jour existe pour ce mois selon les règles bissextiles : une année est bissextile lorsqu'elle est divisible par quatre, sauf que les années séculaires ne le sont que lorsqu'elles sont aussi divisibles par quatre cents.
Cette règle rend le vingt-neuf février légal en des années telles que deux mille vingt-quatre et deux mille, et illégal en deux mille vingt-trois et mille neuf cents. Lorsque le triplet est valide, ajoutez le décalage d'années entier à la composante année en gardant le mois fixe. Si le jour de base est le vingt-neuf février et que l'année résultante n'est pas bissextile, ramenez le jour à vingt-huit pour que la sortie reste une date civile réelle ; sinon conservez le jour du mois d'origine.
Formatez le résultat en chaîne ISO quatre-deux-deux.
Où les calculateurs d'ajout d'années apparaissent au travail
Les plateformes de ressources humaines calculent les renouvellements de contrat et la fin d'essai comme date d'embauche plus un ou deux ans civils sans importer une bibliothèque de planification complète. Les services de garantie et de support fixent des échéances pluriannuelles à partir d'une chaîne ISO d'achat. Les systèmes d'éducation et d'adhésion projettent des fenêtres d'anniversaire pour l'inscription et les cotisations.
Les ingénieurs de données matérialisent des colonnes dérivées pour des politiques de rétention pluriannuelles, des licences pluriannuelles et des années de fin de campagne à partir d'une seule base ISO plus un décalage entier stocké en configuration.
Si vous avez plus tard besoin de décalages en jours plutôt qu'en années, de comptes de jours ouvrables qui sautent les week-ends, de la différence en jours entre deux dates, de l'âge depuis une date de naissance ou seulement d'ordinaux du jour de l'année, traitez-les comme des intentions de recherche et des pages d'atterrissage distinctes plutôt que de surcharger cette page d'ajout d'années à une date.
Cas d’usage
Anniversaires de contrat et de garantie
Ajoutez un, deux ou cinq ans civils à une date ISO d'embauche ou d'achat pour produire des anniversaires et échéances stables entre hôtes.
Renouvellements de licence et d'adhésion
Projetez des dates de fin de licence pluriannuelle et des renouvellements d'adhésion à partir d'une chaîne ISO de début plus un décalage d'années entier configuré.
Gestion des anniversaires au 29 février
Calculez des anniversaires civils pour naissances ou événements du 29 février avec un clamp explicite au 28 février dans les années de résultat non bissextiles.
Questions fréquentes
Que signifie ajouter des années à une date ?
Cela signifie prendre un jour valide du calendrier grégorien et avancer ou reculer d'un nombre entier d'années civiles, en gardant le mois et le jour lorsque c'est possible et en ramenant le 29 février au 28 lorsque l'année de résultat n'est pas bissextile.
Comment le 29 février est-il traité ?
Si la date de base est le 29 février et que l'année de résultat est bissextile, le résultat reste le 29 février.
Quel format de date est exigé ?
ISO strict YYYY-MM-DD avec année à quatre chiffres et mois et jour à deux chiffres. Des valeurs comme 2024-3-15 ou 2024/03/15 sont rejetées pour que chaque client s'accorde sur la même chaîne.
Que se passe-t-il avec une date de base invalide comme 2023-02-29 ?
Le message d'erreur explique que le jour n'est pas valide pour cette année et ce mois.
Combien cela coûte-t-il ?
L'outil du navigateur est gratuit et s'exécute en local.
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-years \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2024-03-15","years":2}'const res = await fetch("https://api.kit.forhosting.com/date/add-years", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2024-03-15",
"years": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/add-years",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2024-03-15",
"years": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/add-years", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2024-03-15","years":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2024-03-15","years":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/add-years", 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-03-15",
"years": 2
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.add_years",
"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.
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 vous envoyez et ce que vous recevez
Envoyez deux champs obligatoires : date comme jour de calendrier ISO strict, par exemple deux mille vingt-quatre tiret zéro trois tiret un cinq, et years comme nombre entier fini d'années, par exemple deux, zéro ou moins un. Contrôles classiques : ajouter deux ans au quinze mars deux mille vingt-quatre pour atteindre le quinze mars deux mille vingt-six ; ajouter un an au vingt-neuf février deux mille vingt-quatre pour atteindre le vingt-huit février deux mille vingt-cinq avec clamp vrai ; ajouter quatre ans au même jour bissextile pour garder le vingt-neuf février en deux mille vingt-huit ; et soustraire un an d'une date de mi-année pour atterrir sur l'anniversaire précédent. Champs manquants, dates non chaînes, chaînes qui ne correspondent pas au motif de chiffres quatre-deux-deux, décalages non entiers et bases qui correspondent au motif mais ne sont pas de vraies dates de calendrier échouent avec invalid_input et ne sont pas facturés. En cas de succès la réponse renvoie la date de base normalisée, le décalage entier years appliqué, la chaîne ISO du résultat après addition, l'année, le mois et le jour numériques du résultat, un booléen is_leap_year pour l'année du résultat, un booléen clamped_leap_day vrai seulement lorsque le vingt-neuf février a été ramené au vingt-huit, et une courte chaîne formula qui documente la règle de clamp bissextile. Le tarif des appels API réussis est la base publiée de $0.002 par élément ; les échecs de validation ne consomment pas le solde prépayé.
Où les calculateurs d'ajout d'années apparaissent au travail
Comme cette capacité est un moteur de parse pur, le tarif API est la base publiée de $0.002 par élément réussi et l'échec de validation ne consomme pas le solde.