Retour à la sobriété
Ce calculateur estime le temps nécessaire pour qu’une concentration actuelle d’alcool dans le sang atteigne zéro lorsque l’élimination suit un taux horaire constant.
Lancer gratuitement
Saisissez le BAC en pourcentage, par exemple 0.08 pour 0.08%, ainsi qu’un taux en points de pourcentage par heure. Le résultat est une estimation mathématique : il ne prouve pas que vous pouvez conduire, travailler, surveiller autrui, prendre des médicaments ou accomplir une tâche sensible. Le métabolisme varie, les mesures peuvent être imprécises et l’absorption peut se poursuivre.
Saisissez la concentration et le taux dans des unités cohérentes
Utilisez le BAC actuel exprimé en pourcentage. Une mesure habituellement notée 0.08% doit, par exemple, être saisie sous la forme 0.08, et non 8 ou 0.0008. Indiquez le taux d’élimination en points de pourcentage par heure selon la même convention ; 0.015 signifie que le modèle retranche 0.015 point de BAC chaque heure. La cohérence des unités est indispensable, puisque le calcul divise la concentration par le taux. Une erreur d’unité peut multiplier ou diviser la réponse par cent tout en donnant un nombre apparemment plausible. Le calculateur exige deux nombres finis, accepte une concentration nulle et impose un taux strictement positif. Une valeur manquante, du texte, une concentration négative, un taux nul ou une valeur non finie entraîne un message d’entrée incorrecte explicite. Si le BAC est déjà nul, le temps restant estimé est nul. Choisissez un taux étayé par votre méthode de mesure ou par les recommandations que vous suivez, sans considérer un taux générique comme une vérité biologique personnelle. Cet outil ne déduit rien du poids, du sexe, des aliments, des boissons ou des symptômes.
Comprenez le principe de l’estimation linéaire
L’algorithme applique une équation transparente : le nombre d’heures avant zéro correspond au pourcentage actuel de BAC divisé par le taux d’élimination en points de pourcentage par heure. Ainsi, un BAC de 0.08 avec un taux de 0.015 donne environ 5.333333 heures. La réponse répartit également l’estimation arrondie en heures entières et minutes restantes pour une lecture pratique, tout en conservant six décimales pour l’automatisation. Le calcul est déterministe : des entrées numériques identiques produisent toujours la même sortie, sans requête réseau, valeur aléatoire, horloge, profil enregistré ni correction cachée. Le modèle suppose que l’élimination a commencé, qu’elle se poursuit à taux constant et qu’elle continue jusqu’à zéro. La physiologie réelle est plus complexe. Le BAC peut encore augmenter après le dernier verre, les taux varient selon les personnes et les moments, les appareils grand public comportent une incertitude et compter les verres ne constitue pas une mesure. La réponse est donc une opération arithmétique fondée sur des hypothèses déclarées, et non une prévision clinique, une décision juridique ou une garantie de sobriété.
Interprétez le résultat avec prudence
Considérez l’estimation comme une aide à la planification et ajoutez une marge de sécurité adaptée au lieu de prévoir une activité dangereuse à la minute calculée. Se sentir alerte ne démontre pas un BAC nul ; le café, la nourriture, une douche, l’exercice ou le sommeil n’accélèrent pas l’équation. Seul le temps écoulé réduit la concentration modélisée. S’il est question de conduire ou d’utiliser une machine, choisissez une personne sobre, un taxi, les transports publics ou une autre solution sûre plutôt que de dépendre de ce résultat. En cas d’urgence, ou si une personne se réveille difficilement, respire lentement ou irrégulièrement, vomit à répétition, paraît confuse, convulse ou présente une peau pâle ou bleutée, contactez immédiatement les secours locaux sans attendre un calculateur. Dans un logiciel, conservez les entrées originales avec la sortie afin que le taux et les unités retenus restent visibles. L’API coûte $0.002 par requête et fournit des champs structurés pour un formulaire, un tableur ou un outil interne. Le traitement est local, analytique, sans prestataire externe ni variation aléatoire.
Cas d’usage
Prévoir un retour prudent
Évaluez une durée minimale d’attente depuis un BAC mesuré, puis choisissez un transport qui ne dépend pas de l’exactitude parfaite du résultat.
Présenter un modèle linéaire du BAC
Montrez à des élèves ou stagiaires comment la division d’une concentration par un taux horaire fournit une durée estimée.
Intégrer une planification déterministe
Obtenez des heures et minutes structurées et constantes, sans réseau, profil, horloge ni hypothèse aléatoire.
Questions fréquentes
Ce résultat indique-t-il quand je peux conduire sans danger ?
Non. Cette estimation simplifiée ne prouve ni l’aptitude à conduire ni la sobriété légale. Choisissez une solution sûre et respectez la loi locale.
Quelles unités faut-il saisir ?
Saisissez le BAC en pourcentage, par exemple 0.08 pour 0.08%, et le taux en points de pourcentage par heure, par exemple 0.015.
Quelle formule est appliquée ?
Le nombre d’heures avant zéro est le pourcentage actuel de BAC divisé par le taux d’élimination en points de pourcentage par heure.
Le café ou le sommeil réduisent-ils la durée calculée ?
Non. Le modèle emploie uniquement le BAC et le taux indiqué, sans attribuer d’effet au café, aux aliments, aux douches, à l’exercice ou au sommeil.
Quel est le prix de l’API ?
Chaque requête API coûte $0.002. Le calcul est également conçu pour fonctionner localement, sans service de données externe.
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/health/time-to-sober \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"current_bac_percent":0.08,"elimination_rate_percent_per_hour":0.015}'const res = await fetch("https://api.kit.forhosting.com/health/time-to-sober", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"current_bac_percent": 0.08,
"elimination_rate_percent_per_hour": 0.015
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/time-to-sober",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"current_bac_percent": 0.08,
"elimination_rate_percent_per_hour": 0.015
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/time-to-sober", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"current_bac_percent":0.08,"elimination_rate_percent_per_hour":0.015}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"current_bac_percent":0.08,"elimination_rate_percent_per_hour":0.015}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/time-to-sober", 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
{
"current_bac_percent": 0.08,
"elimination_rate_percent_per_hour": 0.015
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.time_to_sober",
"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. |