Calcolatore BAC
Stima il tasso alcolemico (BAC) in base a bevande, peso e tempo.
Informazioni sullo strumento
Il contenuto di alcol nel sangue (BAC) è una misura della percentuale di alcol nel flusso sanguigno ed è un indicatore critico dell'intossicazione alcolica. Questo calcolatore BAC stima il tuo livello di alcol nel sangue in base alla quantità di alcol che hai consumato, al tuo peso corporeo, al sesso e al tempo trascorso dall'inizio del consumo di alcol. Comprendere il tuo BAC stimato ti aiuta a prendere decisioni consapevoli sulla sicurezza di guidare, utilizzare macchinari o svolgere altre attività che richiedono chiarezza mentale.
Per utilizzare questo calcolatore, inserisci il numero di bevande standard che hai consumato, il tuo peso corporeo, seleziona il tuo sesso (che influisce sul metabolismo dell'alcol) e specifica quanto tempo è trascorso dall'inizio del consumo. Il calcolatore utilizza la formula di Widmark, un metodo ampiamente accettato nella medicina legale e nella sanità pubblica, per stimare il tuo BAC. Tieni presente che si tratta di una stima — il BAC effettivo varia a causa di fattori come il consumo di cibo, il tasso metabolico, la concentrazione della bevanda e i livelli di idratazione.
I risultati sono forniti esclusivamente a scopo educativo e di riduzione del danno e non devono mai essere utilizzati come difesa legale o come sostituto di un test del respiro. Molte giurisdizioni definiscono limiti legali di guida (tipicamente 0,08% in molti paesi), e gli etilometri della polizia sono l'unico metodo affidabile per l'applicazione. Dai sempre la priorità alla sicurezza: se hai consumato alcol, utilizza un taxi, un autista designato o un servizio di condivisione di corse anziché fare affidamento su una stima.
Domande Frequenti
Implementazione del Codice
def calculate_bac(
drinks: list[dict],
weight_kg: float,
gender: str,
hours_elapsed: float
) -> float:
"""
Estimate Blood Alcohol Content using the Widmark formula.
BAC = (alcohol_grams / (weight_kg * r * 10)) - (0.015 * hours)
r = 0.68 for male, 0.55 for female
drinks: list of {"abv": float (%), "volume_ml": float}
WARNING: For estimation only. Never use to determine fitness to drive.
"""
r = 0.68 if gender.lower() == "male" else 0.55
total_alcohol_grams = sum(
d["volume_ml"] * (d["abv"] / 100) * 0.789 # ethanol density = 0.789 g/ml
for d in drinks
)
bac = (total_alcohol_grams / (weight_kg * r * 10)) - (0.015 * hours_elapsed)
return max(bac, 0.0)
# Example: 80kg male, 2 beers (5%, 355ml), 1 hour elapsed
drinks = [
{"abv": 5, "volume_ml": 355},
{"abv": 5, "volume_ml": 355},
]
bac = calculate_bac(drinks, weight_kg=80, gender="male", hours_elapsed=1)
print(f"Estimated BAC: {bac:.4f}%") # ~0.0367%
Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.