Mois entre deux dates
Saisissez deux dates pour obtenir les mois entiers qui les séparent et les jours restants : du 15 janvier 2024 au 10 mars 2025, il y a 13 mois et 23 jours. Le 31 janvier plus un mois donne la fin février. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Date ISO de début
- 2024-01-15
- Date ISO de fin
- 2025-03-10
- Date de début
- 2024-01-15
- Date de fin
- 2025-03-10
- Mois
- 13
- Jours
- 23
Les contrats, les échéanciers de location, l'âge des nourrissons en mois, les jalons d'abonnement et les plannings de projet exigent souvent plus qu'un simple nombre de jours : il faut savoir combien de mois civils entiers tiennent entre deux dates, et combien de jours restent après ces mois. Ce calculateur de mois entre deux dates accepte un couple de dates ISO, valide chaque jour selon les règles grégoriennes des années bissextiles avec une arithmétique entière pure, avance la date la plus ancienne mois par mois avec plafonnement en fin de mois, et renvoie un résultat structuré en mois entiers plus jours restants que formulaires, feuilles de calcul et APIs peuvent figer sans réimplémenter les cas limites du calendrier. Les formes invalides et les dates impossibles comme le trente février échouent avec une erreur d'entrée invalide et ne sont pas facturées.
Choisir les dates ISO from et to, et formats acceptés
Envoyez deux champs de chaînes nommés from et to. Chaque valeur doit être une date ISO avec année à quatre chiffres, mois et jour, par exemple deux mille vingt-quatre tiret zéro un tiret quinze. Vous pouvez aussi envoyer un datetime ISO-8601 complet avec heures, minutes, secondes, fractions de seconde optionnelles, un Z final pour UTC, ou un décalage numérique comme plus zéro deux deux-points zéro zéro.
Quand une heure est présente, le moteur valide les champs horaires pour rejeter les heures impossibles, mais seule la partie civile année-mois-jour sert au calcul des mois entiers et des jours restants, ce qui reste honnête pour qui cherche des mois entre deux dates plutôt qu'un compte à rebours à la seconde. Les années vont de un à neuf mille neuf cent quatre-vingt-dix-neuf, les mois de un à douze, et les jours doivent exister dans ce mois, y compris le vingt-neuf février des années bissextiles le cas échéant.
Tout ce qui sort de ces plages est une entrée invalide, jamais un report silencieux sur le mois suivant.
Usages courants et limites pratiques
Utilisez gratuitement l'outil de mois entre deux dates dans le navigateur pour les calculs de bail, l'âge d'un bébé en mois, les vérifications d'anniversaire de contrat et les démonstrations en classe, sans installer de bibliothèques de dates ni de bases de fuseaux horaires. Combinez ce point d'accès avec un outil de type compte à rebours entre deux dates quand il vous faut aussi heures et secondes pour un lancement, ou avec un calculateur de jours du mois pour valider d'abord les longueurs de février avant de bâtir des plannings.
Restez honnête sur les attentes : ce produit mesure des mois grégoriens entiers et des jours restants entre deux dates explicites ; il n'invente pas la date du jour depuis l'horloge serveur, ne saute pas les week-ends comme mois ouvrés et ne charge pas de calendriers de jours fériés. Les entrées sources suivent les mêmes règles de rétention que les autres éléments parse de KIT.
Cas d’usage
Âge en mois pour nourrissons et pédiatrie
Les applications de santé et de parentalité calculent les mois entiers et les jours écoulés depuis une date de naissance, sans moyennes de mois en virgule flottante ni dérive de fuseau horaire.
Jalons d'abonnement et de projet
Les tableaux de facturation et de projet mesurent l'ancienneté ou la durée d'une phase entre deux dates ISO fixes et inversent le texte avec direction quand une date cible est déjà passée.
Questions fréquentes
Que se passe-t-il si une date est invalide ?
Forme ISO incorrecte, jours impossibles comme le 30 février et champs hors plage sont rejetés et non facturés.
Le calculateur de mois entre deux dates est-il gratuit ?
L'outil du navigateur fonctionne gratuitement sur votre appareil.
Cela utilise-t-il l'horloge du serveur ou l'objet Date de JavaScript ?
Non. Les deux dates proviennent de vos chaînes. Le moteur applique une arithmétique grégorienne pure des mois, sans Date, réseau ni aléatoire : les résultats sont entièrement déterministes.
Comment les mois sont-ils comptés si la date de départ est un 31 ?
Avec un ajustement en fin de mois : un mois après le 31 janvier, c'est le dernier jour de février, pas une date de mars. L'outil avance ainsi mois par mois et compte à part les jours restants.
Que se passe-t-il si la date de fin précède la date de début ?
Vous obtenez toujours des mois et des jours positifs pour l'intervalle, avec un sens indiqué comme rétrograde et des valeurs signées négatives, pour savoir que la date visée est déjà passée.
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/months-between \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"from":"2024-01-15","to":"2025-03-10"}'const res = await fetch("https://api.kit.forhosting.com/date/months-between", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"from": "2024-01-15",
"to": "2025-03-10"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/months-between",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"from": "2024-01-15",
"to": "2025-03-10"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/months-between", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"from":"2024-01-15","to":"2025-03-10"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"from":"2024-01-15","to":"2025-03-10"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/months-between", 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
{
"from": "2024-01-15",
"to": "2025-03-10"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.months_between",
"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
Le chemin ne touche jamais l'horloge, l'aléatoire ni le réseau, donc des chaînes from et to identiques produisent toujours un JSON identique en intégration continue comme en production.
Choisir les dates ISO from et to, et formats acceptés
Les alias start, begin et start_date correspondent à from ; end, until, end_date et target correspondent à to, selon les conventions courantes des formulaires et APIs. Les deux champs sont obligatoires : en omettre un, envoyer autre chose qu'une chaîne ou passer des espaces vides déclenche invalid_input en nommant le côté manquant.
Lecture de months, days, total_days, des champs signés et de direction
Les champs months et days sont toujours non négatifs et décrivent ensemble l'étendue civile absolue : months est le plus grand nombre de mois entiers que l'on peut ajouter à la date la plus ancienne sans dépasser la plus récente, avec plafonnement en fin de mois pour que le trente et un janvier plus un mois tombe sur le dernier jour de février. Le champ days est la différence civile de jours restante après cette avance, donc une période de mi-janvier à début mars peut afficher un mois et quelques dizaines de jours plutôt qu'un total de jours seul. En cas de succès, la réponse renvoie les chaînes from et to d'origine, plus from_date et to_date normalisées au format YYYY-MM-DD. Le champ total_days est la différence absolue des numéros de jours civils entre les deux dates, utile quand il vous faut aussi un compte de jours non ordonné. Quand la fin précède le début, is_past est true, direction vaut backward, et signed_months plus signed_days_remainder portent un signe négatif tandis que months et days restent non négatifs pour l'affichage. Quand les deux dates coïncident, is_zero est true, direction vaut zero et chaque grandeur est nulle. Utilisez months et days pour le texte lisible, total_days pour trier par durée, et direction quand votre produit doit distinguer restant et en retard.
Usage de l'API, tarification, flux produits et limites pratiques
Envoyez un corps JSON avec les champs de chaînes obligatoires from et to comme dates ISO. Recourez à l'API prépayée quand un système de facturation, un tableau d'ancienneté RH, une plateforme immobilière ou un planificateur de projet exige un contrat stable sous solde KIT à $0.002 par élément réussi ; les échecs de validation ne consomment jamais de solde une fois la requête rejetée. Les auteurs de SDKs peuvent projeter months et days directement dans deux widgets numériques et piloter le style des retards depuis is_past avec la même forme de réponse dans chaque langage.
Cas d'intégration
Durée des baux et des contrats
Les outils immobiliers et juridiques transmettent les dates ISO de début et de fin de bail, affichent les mois entiers plus les jours restants sur la page de synthèse et stockent total_days pour trier les contrats actifs.
Questions techniques
Comment obtenir les mois entre deux dates ?
Envoyez un JSON avec from et to comme dates ISO (par exemple from: "2024-01-15" et to: "2025-03-10"). La réponse inclut months, days, total_days et une chaîne formatted.
Et si la fin précède le début ?
months et days restent non négatifs pour l'étendue absolue, signed_months et signed_days_remainder sont négatifs, is_past est true et direction vaut backward.