Calculadora de BAC
Estime o Teor de Álcool no Sangue (BAC) com base em bebidas, peso e tempo.
Sobre esta ferramenta
O teor de álcool no sangue (TAA) é uma medida da porcentagem de álcool na sua corrente sanguínea e é um indicador crítico de intoxicação por álcool. Esta calculadora de TAA estima o seu nível de álcool no sangue com base na quantidade de álcool que você consumiu, no seu peso corporal, sexo e no tempo decorrido desde que começou a beber. Compreender seu TAA estimado o ajuda a tomar decisões informadas sobre se é seguro dirigir, operar máquinas ou realizar outras atividades que exijam clareza mental.
Para usar esta calculadora, digite o número de bebidas padrão que você consumiu, seu peso corporal, selecione seu sexo (que afeta o metabolismo do álcool) e especifique quanto tempo se passou desde que começou a beber. A calculadora usa a fórmula de Widmark, um método amplamente aceito em ciência forense e saúde pública, para estimar seu TAA. Tenha em mente que esta é uma estimativa — o TAA real varia devido a fatores como consumo de alimentos, taxa de metabolismo, concentração da bebida e níveis de hidratação.
Os resultados são fornecidos apenas para fins educacionais e de redução de danos, e nunca devem ser usados como defesa legal ou como substituto de um teste de respiração. Muitas jurisdições definem limites legais de condução (tipicamente 0,08% em muitos países), e os testes de respiração da polícia são o único método confiável para aplicação. Sempre priorize a segurança: se você bebeu, use um táxi, motorista designado ou serviço de compartilhamento de caronas em vez de confiar em uma estimativa.
Perguntas Frequentes
Implementação de Código
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.