Saltar al contenido
🛠️ToolsShed

Calculadora de BAC

Estima el Contenido de Alcohol en Sangre (BAC) según bebidas, peso y tiempo.

Acerca de esta herramienta

El contenido de alcohol en sangre (BAC) es una medida del porcentaje de alcohol en el torrente sanguíneo y es un indicador crítico de la intoxicación por alcohol. Esta calculadora de BAC estima su nivel de alcohol en sangre basándose en la cantidad de alcohol que ha consumido, su peso corporal, sexo y el tiempo transcurrido desde que comenzó a beber. Comprender su BAC estimado le ayuda a tomar decisiones informadas sobre si es seguro conducir, operar maquinaria u realizar otras actividades que requieran claridad mental.

Para usar esta calculadora, ingrese el número de bebidas estándar que ha consumido, su peso corporal, seleccione su sexo (que afecta el metabolismo del alcohol) y especifique cuánto tiempo ha transcurrido desde que comenzó a beber. La calculadora utiliza la fórmula de Widmark, un método ampliamente aceptado en la ciencia forense y la salud pública, para estimar su BAC. Tenga en cuenta que esta es una estimación: el BAC real varía según factores como el consumo de alimentos, la velocidad del metabolismo, la concentración de la bebida y los niveles de hidratación.

Los resultados se proporcionan únicamente con fines educativos y de reducción de daños, y nunca deben utilizarse como defensa legal o como sustituto de una prueba de alcoholemia. Muchas jurisdicciones definen límites legales de conducción (típicamente 0.08% en muchos países), y los alcoholímetros de la policía son el único método confiable para la ejecución. Siempre priorice la seguridad: si ha estado bebiendo, use un taxi, conductor designado o servicio de viajes compartidos en lugar de confiar en una estimación.

Preguntas Frecuentes

Implementación 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.