Compte à rebours jusqu'au prochain anniversaire
Ce calculateur détermine le prochain anniversaire à partir d'une date de naissance et d'une date de référence explicites.
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Il indique la date concernée, le nombre exact de jours civils restants, l'âge atteint et si l'événement tombe pendant l'année de référence. Le calcul gère le changement d'année et les années bissextiles sans consulter l'horloge, employer un fuseau horaire ni contacter un service externe. Les mêmes données produisent donc toujours une réponse identique et vérifiable.
Saisissez deux dates civiles complètes
Renseignez birth_date et reference_date au format non ambigu YYYY-MM-DD, avec les zéros initiaux. La naissance fournit le mois et le jour récurrents ainsi que l'année nécessaire au calcul de l'âge. La référence fixe le début du décompte et ne peut pas précéder la naissance. Chaque valeur est contrôlée comme une véritable date grégorienne : les dates impossibles, partielles ou ambiguës sont refusées plutôt que corrigées. Puisque vous fournissez la référence, l'outil convient aux recherches historiques, aux tests et à la planification future sans dépendre de l'horloge de l'appareil. Si la référence correspond à l'anniversaire, days_remaining vaut zéro et cette même date est renvoyée. L'anniversaire reste ainsi le prochain pendant toute sa journée civile, sans basculer trop tôt vers l'année suivante.
Comprenez le changement d'année et le résultat
Le calculateur construit d'abord l'anniversaire de l'année de référence. S'il tombe ce jour-là ou plus tard, il est retenu et occurs_this_year vaut true. S'il est déjà passé, la date de l'année suivante est utilisée et l'indicateur vaut false. Cette comparaison traite toutes les transitions annuelles. days_remaining représente une différence exacte entre dates grégoriennes, jamais entre heures locales : heure d'été et décalages UTC ne modifient donc rien. next_birthday reste au format YYYY-MM-DD et turning_age indique l'âge atteint à cette date, pas l'âge lors de la consultation. Ces champs permettent un affichage lisible et un stockage normalisé. Chaque requête traite une paire de dates pour $0.002 via l'API ; le navigateur emploie exactement la même logique pure.
Appliquez une règle cohérente au 29 février
Une naissance le 29 février exige une convention, car cette journée manque dans la plupart des années. Le calculateur retient le 28 février comme anniversaire observé pendant une année commune et le 29 pendant une année bissextile. Cette règle unique sert à la comparaison, au choix de la date, au décompte et à l'âge. Il s'agit d'une convention pratique, pas d'un avis sur la majorité légale, les prestations, les contrats ou les préférences personnelles. Les lois et usages peuvent choisir le 28 février, le 1er mars ou une autre définition. Pour une échéance officielle, appliquez la règle compétente. Les années 0001 à 9999 sont acceptées. Une référence située à la fin de 9999 peut être refusée si le prochain anniversaire nécessiterait l'année 10000, non représentable dans le format admis.
Cas d’usage
Créer un rappel d'anniversaire
Transformez une naissance et une date d'exécution en décompte précis et en date cible normalisée.
Préparer la prochaine fête
Vérifiez si l'anniversaire reste à venir cette année ou passe à l'année suivante.
Tester un logiciel calendaire
Obtenez des résultats reproductibles pour le jour même, les changements d'année et les années bissextiles sans horloge système.
Questions fréquentes
Un anniversaire aujourd'hui donne-t-il zéro ?
Oui. Le résultat indique zéro jour et conserve la date de référence comme prochain anniversaire.
Que se passe-t-il si l'anniversaire est déjà passé ?
La date de l'année suivante est choisie et occurs_this_year renvoie false.
Comment le 29 février est-il traité en année commune ?
Le 28 février sert d'anniversaire observé lorsqu'il n'existe pas de 29 février.
Le fuseau horaire peut-il modifier le décompte ?
Non. Le calcul repose sur des entiers grégoriens et ne crée aucun horodatage.
Combien coûte une requête API ?
Chaque requête API coûte $0.002. Le même calcul déterministe fonctionne aussi dans le navigateur.
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/next-birthday-countdown \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"birth_date":"1990-10-20","reference_date":"2026-08-12"}'const res = await fetch("https://api.kit.forhosting.com/date/next-birthday-countdown", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"birth_date": "1990-10-20",
"reference_date": "2026-08-12"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/next-birthday-countdown",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"birth_date": "1990-10-20",
"reference_date": "2026-08-12"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/next-birthday-countdown", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"birth_date":"1990-10-20","reference_date":"2026-08-12"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"birth_date":"1990-10-20","reference_date":"2026-08-12"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/next-birthday-countdown", 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
{
"birth_date": "1990-10-20",
"reference_date": "2026-08-12"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.next_birthday_countdown",
"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. |