Calculer les jours entre deux dates
Du 15 janvier 2024 au 10 mars 2025, il y a 420 jours, soit 60 semaines pile, ou 13 mois civils et 23 jours. Saisissez deux dates pour obtenir les trois mesures, sans aucun fuseau horaire. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Début
- 2024-01-15
- End
- 2025-03-10
- Direction
- forward
- Jours signés
- 420
- Jours
- 420
- Semaines
- 60
Ce calculateur d’écart entre dates mesure l’intervalle séparant deux dates civiles sans dépendre des fuseaux horaires, des heures ni des règles de changement d’heure. Saisissez deux dates réelles au format YYYY-MM-DD pour obtenir le nombre exact de jours, son équivalent en semaines, une décomposition en semaines entières et une décomposition en mois civils avec les jours restants. Les résultats sont déterministes pour les dates grégoriennes des années 0001 à 9999. Si vous inversez les dates, l’intervalle absolu reste identique et le sens rétrograde est clairement signalé.
Saisissez deux dates civiles précises
Indiquez la première date dans le champ start et la seconde dans le champ end, en respectant strictement le modèle YYYY-MM-DD. Les zéros initiaux comptent : écrivez 2026-07-05 et non 2026-7-5. Chaque valeur est contrôlée selon le calendrier grégorien, et pas seulement reconnue comme une chaîne bien formée.
Ainsi, le 31 avril est refusé, le 29 février n’est accepté que pendant une année bissextile et un treizième mois ne peut jamais produire un résultat trompeusement plausible. La plage prise en charge s’étend de l’année 0001 à l’année 9999. Le calcul porte uniquement sur des jours civils : aucune heure cachée, aucun fuseau local, aucun passage à l’heure d’été et aucune conversion UTC n’interviennent.
Si end suit start, le sens vaut forward ; s’il le précède, il vaut backward. Deux dates identiques donnent same et zéro pour chaque mesure.
Interprétez correctement les mois civils
Les mois n’ont pas tous la même durée ; le calculateur ne suppose donc ni un mois fixe de trente jours ni une durée moyenne. Le champ months compte les avancées complètes de mois civils depuis la date la plus ancienne vers la plus récente. Lorsque le jour initial n’existe pas dans le mois d’arrivée, le calcul se cale sur le dernier jour valide de ce mois.
Cette paire constitue une décomposition calendaire, tandis que days demeure la distance exacte universelle et weeks une conversion en unités de sept jours.
Cas d’usage
Mesurer la durée d’un projet
Convertissez les dates de début et de livraison en jours exacts, semaines entières et mois civils pour planifier.
Contrôler des périodes de facturation
Comptez les mois civils complets et les jours restants sans supposer que chaque mois dure trente jours.
Valider une logique de dates
Produisez des intervalles déterministes pour les tests, imports, rapports et systèmes devant refuser les dates impossibles.
Questions fréquentes
Les dates de début et de fin sont-elles incluses ?
Non. Days mesure les frontières civiles écoulées ; deux dates consécutives sont donc séparées d’un jour.
Comment les semaines sont-elles calculées ?
Une semaine vaut exactement sept jours. Le résultat fournit une valeur décimale, les semaines entières et les jours restants.
Comment les mois sont-ils calculés ?
Les avancées complètes de mois civils sont comptées, puis le nombre exact de jours encore restants est indiqué.
Que se passe-t-il si je saisis d'abord la date la plus récente ?
Vous obtenez le même intervalle en jours, semaines et mois, et le résultat indique que le sens est inversé. Deux dates identiques donnent zéro pour chaque mesure et un sens marqué comme même jour.
Le fuseau horaire ou l'heure d'été modifient-ils le résultat ?
Non. Le calcul n'utilise que des jours du calendrier, sans heure, fuseau local, changement d'heure ni conversion en UTC : deux personnes n'importe où obtiennent la même réponse pour les mêmes dates.
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/calc2/date-difference \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2024-01-15","end":"2025-03-10"}'const res = await fetch("https://api.kit.forhosting.com/calc2/date-difference", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": "2024-01-15",
"end": "2025-03-10"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calc2/date-difference",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": "2024-01-15",
"end": "2025-03-10"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calc2/date-difference", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":"2024-01-15","end":"2025-03-10"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":"2024-01-15","end":"2025-03-10"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calc2/date-difference", 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
{
"start": "2024-01-15",
"end": "2025-03-10"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc2.date_difference",
"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
Saisissez deux dates civiles précises
Les alias from et to sont également admis par l’API, tandis que start et end rendent les formulaires et exemples explicites.
Comprenez les jours et les semaines obtenus
Le champ days correspond au nombre absolu de frontières de minuit à minuit séparant les dates. Le champ weeks divise le nombre absolu de jours par sept et arrondit l’affichage à six décimales, ce qui convient aux estimations et aux rapports. Aucun postulat ne concerne les semaines ouvrées, week-ends, jours fériés ou comptages inclusifs. Par exemple, du 1er au 2 janvier, il s’écoule un jour, et un jour intercalaire compte comme tout autre jour civil réel. signed_days conserve l’ordre : sa valeur est positive lorsque end est postérieur, négative lorsqu’il est antérieur et nulle lorsque les deux entrées coïncident. Pour une décomposition entière exacte, whole_weeks fournit les groupes complets de sept jours et remaining_days_after_weeks le reste compris entre zéro et six. Ces deux valeurs reconstituent toujours le total : whole_weeks multiplié par sept, puis le reste. Il s’agit d’un intervalle civil écoulé, adapté aux plannings, durées, jeux de test et calculs cohérents par API.
Interprétez correctement les mois civils
Ce choix garantit un comportement stable pour les intervalles commençant les 29, 30 ou 31 janvier. remaining_days_after_months indique les jours civils exacts restant après ces mois complets. Pour des entrées inversées, la décomposition mensuelle part de la date chronologiquement antérieure afin de préserver des quantités absolues cohérentes ; direction et signed_days indiquent l’ordre. Utilisez days pour les échéances, whole_weeks pour des blocs de travail, et months avec son reste pour les abonnements, anniversaires, anciennetés ou autres périodes civiles.
Questions techniques
Quel est le coût d’une requête API ?
Chaque requête API coûte $0.002. Le calculateur peut aussi s’exécuter gratuitement et localement dans le navigateur.
Que se passe-t-il si une date est invalide ?
La requête échoue avec invalid_input si une valeur est mal formatée ou ne correspond pas à une date grégorienne réelle.