Date d'achèvement d'objectif
S’il vous reste 750 sur un objectif de 1 000 et que vous avancez de 25 par jour, vous finirez en 30 jours : en partant du 1er janvier 2024, le 31 janvier. Un dernier jour partiel compte comme un jour entier. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Objectif
- 1 000
- Actuel
- 250
- Tarif journalier
- 25
- Date de début
- 2024-01-01
- Restant
- 750
- Jours nécessaires
- 30
- Semaines
- 4
- Jours résiduels
- 2
Un calculateur de date d'achèvement d'objectif répond à la question de planification dont tout projet et toute cible personnelle a besoin : s'il reste cette quantité et que la progression continue à un rythme quotidien stable, quel jour du calendrier l'objectif sera-t-il atteint ? Saisissez un montant cible non négatif, ce qui est déjà fait, un rythme de progression quotidien strictement positif dans la même unité, et une date de référence ISO de départ—par exemple mille unités d'objectif, deux cent cinquante faites, vingt-cinq par jour à partir du premier janvier—et l'outil renvoie le reste, des jours entiers par division plafond, la date d'achèvement projetée, des semaines plus des jours restants, et la substitution pas à pas à laquelle vous pouvez faire confiance dans une feuille, un tableau de bord ou un test unitaire. Lorsque la progression actuelle atteint ou dépasse déjà l'objectif, les jours nécessaires sont zéro et la date d'achèvement égale la date de départ.
Ce que signifie la date d'achèvement avec un rythme quotidien fixe
La planification de projet et le suivi personnel partent souvent d'un modèle linéaire simple de progression : vous avez une cible numérique, vous détenez déjà une quantité accomplie vers cette cible, et vous attendez une moyenne fixe de progrès chaque jour civil sans accélération, sans calendrier qui ignore les week-ends et sans variance stochastique.
Sous ce modèle, la quantité encore nécessaire est l'objectif moins la progression actuelle, plafonnée à zéro lorsque vous y êtes déjà, et le nombre de jours est le plus petit entier d'incréments quotidiens qui couvre le reste—mathématiquement le plafond du reste divisé par le rythme quotidien. Par exemple, un objectif de mille unités avec deux cent cinquante déjà faites laisse sept cent cinquante restants ; à vingt-cinq par jour, c'est exactement trente jours.
Ajouter trente jours civils à une date de référence du premier janvier tombe sur le trente et un janvier en année bissextile ou non pour ce décalage. Si le reste n'est pas un multiple exact du rythme quotidien, le dernier jour partiel compte encore comme un jour entier car ce modèle ne permet pas de planifier un jour civil fractionnaire : cent restants à trois par jour demandent trente-quatre jours, pas trente-trois virgule trois.
Zéro jour signifie que vous atteignez ou dépassez déjà l'objectif et que la date d'achèvement égale la date de départ. Ce calculateur ne modélise pas les changements de vélocité, les calendriers de capacité d'équipe, les jours fériés, la croissance composée ni la conversion monétaire.
Cas d’usage
Tableaux de bord projet et bandeaux ETA
Les outils produit et opérations envoient le travail restant, la moyenne de burn-down quotidien et la date de référence du jour, puis affichent une date de fin projetée sans réimplémenter division plafond et calendrier dans chaque client.
Objectifs personnels et suivis d'habitudes
Les cibles fitness, lecture et unités type épargne projettent quand une cible numérique se termine à un rythme quotidien stable pour les écrans de motivation et les bilans hebdomadaires.
Questions fréquentes
Cela ignore-t-il les week-ends ou les jours fériés ?
Non. Il ajoute des jours civils entiers sur le calendrier grégorien proleptique. Utilisez un outil de jours ouvrés si vous devez sauter week-ends et fériés.
Le calculateur de date d'achèvement d'objectif est-il gratuit ?
L'outil navigateur est gratuit et s'exécute en local.
Que se passe-t-il si le reste ne se divise pas exactement par le rythme quotidien ?
Le dernier jour partiel compte comme un jour entier, car on ne planifie pas une fraction de jour. Le nombre de jours est toujours arrondi au supérieur : un petit reliquat ajoute un jour au lieu d’être ignoré.
Et si j’ai déjà atteint mon objectif ?
Le nombre de jours nécessaires vaut alors zéro et la date d’achèvement est la date de départ. C’est aussi le cas si votre progression dépasse déjà l’objectif, car le reste ne descend jamais sous zéro.
Le rythme quotidien peut-il être nul ?
Non. Un rythme nul ne comblerait jamais l’écart : il est refusé plutôt que de donner une date infinie. Les rythmes et montants négatifs sont également refusés ; indiquez la moyenne positive que vous comptez tenir chaque jour.
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/biz/goal-completion-date \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"goal":1000,"current":250,"daily_rate":25,"start_date":"2024-01-01"}'const res = await fetch("https://api.kit.forhosting.com/biz/goal-completion-date", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"goal": 1000,
"current": 250,
"daily_rate": 25,
"start_date": "2024-01-01"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/goal-completion-date",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"goal": 1000,
"current": 250,
"daily_rate": 25,
"start_date": "2024-01-01"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/goal-completion-date", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"goal":1000,"current":250,"daily_rate":25,"start_date":"2024-01-01"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"goal":1000,"current":250,"daily_rate":25,"start_date":"2024-01-01"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/goal-completion-date", 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
{
"goal": 1000,
"current": 250,
"daily_rate": 25,
"start_date": "2024-01-01"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.goal_completion_date",
"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
Un rythme quotidien nul est rejeté avec invalid_input au lieu de prétendre que l'infini est un plan ; les rythmes négatifs et les soldes négatifs sont aussi rejetés. Le chemin est une arithmétique déterministe pure et un calendrier grégorien—sans réseau, sans Date d'horloge, sans graine aléatoire—de sorte que l'exécuteur gratuit du navigateur et l'API prépayée renvoient le même JSON après l'arrondi décimal fixe à chaque appel.
Ce que signifie la date d'achèvement avec un rythme quotidien fixe
Il n'applique que l'arithmétique : remaining égale le maximum de zéro et goal moins current, days égale zéro lorsque remaining est zéro, sinon days égale le plafond de remaining sur daily_rate, et completion_date égale start_date plus autant de jours du calendrier grégorien sans utiliser l'horloge de l'hôte.
Comment appeler l'API et ce qui est renvoyé
Les jours de calendrier impossibles comme le vingt-neuf février en année non bissextile échouent à la validation avec un message de champ clair. Envoyez un corps JSON avec quatre champs obligatoires : goal (alias target, target_amount, amount), la cible numérique non négative ; current (alias current_amount, progress, completed), la quantité non négative déjà faite ; daily_rate (alias rate, daily_progress, progress_rate), la progression quotidienne fixe positive ; et start_date (alias date, as_of, current_date), une chaîne de calendrier ISO stricte YYYY-MM-DD qui est une date grégorienne réelle. Les valeurs absolues d'argent ou de comptage doivent rester dans un billion afin que les produits intermédiaires restent finis en double précision IEEE sur le Worker et dans le navigateur. Le rythme quotidien doit être strictement positif ; une valeur nulle ou quasi nulle est rejetée avec invalid_input car un rythme zéro ne comble jamais un écart positif, et un rythme négatif est aussi rejeté. En cas de succès la réponse renvoie goal, current et daily_rate arrondis plus le start_date normalisé ; fixe remaining à la quantité non négative encore nécessaire ; days_needed au décompte de jours entiers ; weeks et days_remainder à la division entière des jours en blocs de sept ; amount_at_rate à jours fois rythme quotidien ; completion_date à la date ISO projetée ; already_reached à un booléen ; formula à la chaîne documentée ; message à un court résumé en anglais ; et steps à un tableau ordonné de lignes de substitution. Une validation échouée—champs manquants, nombres non finis, valeurs hors limites absolues, goal ou current négatifs, daily_rate nul ou négatif, date invalide ou projection hors de la plage d'années 0001–9999—renvoie invalid_input et n'est jamais facturée. Le tarif est un forfait $0.002 par requête réussie avec unité item.
Conseils pratiques, limites et recherches associées
Cette page cible ceux qui cherchent un calculateur de date d'achèvement d'objectif, une date de fin selon le rythme quotidien, ou le reste divisé par le rythme en ligne ; ce n'est pas un outil de mois d'épargne avec dépôts mensuels, ni un planificateur de jours ouvrés qui saute les week-ends, ni une prévision Monte Carlo de vélocité. Préférez cette capacité lorsque vous connaissez déjà les trois chiffres de progression et une date de référence et n'avez besoin que du jour civil linéaire d'achèvement ; si votre plan inclut intérêts, composition ou calendriers ouvrés, utilisez un modèle dédié. Utilisez la même unité pour goal, current et daily_rate—ne mélangez pas pages et mots, ni dollars et cents, sans convertir d'abord. Gardez le rythme quotidien strictement positif ; les expériences gratuites dans le navigateur qui envoient zéro frapperont correctement invalid_input et ne seront pas facturées sur l'API. Pour enseigner ou tester, associez des exemples : mille d'objectif avec deux cent cinquante actuels et vingt-cinq par jour à partir du premier janvier pour un chemin exact de trente jours jusqu'au trente et un ; un cas où le reste n'est pas multiple du rythme et le plafond ajoute un jour de plus ; un cas où current égale ou dépasse déjà l'objectif donc days est zéro et l'achèvement égale le départ ; et un rythme quotidien volontairement nul pour démontrer le chemin strict invalid_input. Les tâches en échec qui renvoient invalid_input ne consomment pas le solde prépayé, ce qui maintient les scripts exploratoires bon marché lorsque les développeurs envoient délibérément un rythme nul. Les contrôles aller-retour sont simples : recalculez à la main le maximum de zéro et goal moins current, divisez par daily_rate, prenez le plafond, ajoutez ces jours civils à la date de départ avec une bibliothèque grégorienne connue ou un calendrier papier, et confirmez l'égalité avec le completion_date publié dans le même arrondi à douze décimales sur les champs de montant.
Cas d'intégration
Tests unitaires pour bibliothèques de planification
QA et ingénierie génèrent des dates d'achèvement connues et des rejets volontaires de rythme nul pour les valeurs attendues golden dans les modules de prévision.
Questions techniques
Comment la date d'achèvement de l'objectif est-elle calculée ?
remaining = max(0, goal − current). Si remaining est zéro, days_needed vaut 0 et completion_date égale start_date. Sinon days_needed = ceil(remaining / daily_rate) et completion_date est start_date plus autant de jours du calendrier grégorien.
Que se passe-t-il lorsque le rythme quotidien est zéro ?
L'outil renvoie invalid_input. Un rythme de progression nul n'atteint jamais un reste positif, donc l'API refuse ce plan au lieu de renvoyer l'infini.
Et si j'ai déjà atteint l'objectif ?
Si current ≥ goal, days_needed vaut 0, remaining vaut 0, already_reached est true et completion_date est le start_date que vous avez fourni.