Calculadora de sobriedad
Indique el primer día de su sobriedad y la fecha de hoy para ver el tiempo en años, meses y días completos: del 15 de enero de 2020 al 25 de julio de 2026 van 6 años, 6 meses y 10 días. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Fecha de sobriedad
- 2020-01-15
- Fecha actual
- 2026-07-25
- Años
- 6
- Meses
- 6
- Días
- 10
- Días totales
- 2 383
Una calculadora de sobriedad responde a una pregunta de calendario que quienes están en recuperación, los padrinos y las aplicaciones de bienestar plantean a diario: conocido el día en que el alcohol, las drogas u otra sustancia dejaron de formar parte de la vida, cuántos años, meses y días enteros han transcurrido hasta una fecha actual elegida.
Qué significa el tiempo transcurrido en sobriedad en años, meses y días civiles
El tiempo transcurrido en sobriedad es un intervalo de calendario civil, no un cronómetro. Quienes están en recuperación suelen querer el mismo desglose que se usa en una reunión de fichas: cuántos años enteros, luego los meses restantes y después los días restantes, contados desde el primer día de calendario de sobriedad continua hasta un día de referencia elegido.
El desglose civil suma meses de calendario desde la fecha de inicio, recorta el día cuando el mes de destino es más corto (así el 31 de enero más un mes se convierte en el último día de febrero, incluido el 29 de febrero en un año bisiesto), retrocede el recuento de meses si esa fecha recortada rebasa el día de referencia y, por último, informa los días enteros que quedan.
Los años bisiestos siguen la regla conocida de cuatro, cien y cuatrocientos, de modo que un inicio el 29 de febrero de 2024 alcanza el 28 de febrero de 2025 como un año con el día recortado, y el 1 de marzo de 2025 como un año y un día. El recuento inclusivo que llamaría a ese primer día de calendario «un día sobrio» es una convención de reunión, no este contrato.
Qué puede hacer con ella
Fichas de recuperación y tarjetas de aniversario
Introduzca el inicio de la sobriedad y la fecha de la ceremonia para imprimir años, meses y días en una ficha, tarjeta o medalla sin contar febrero a mano.
Revisiones con el padrino y compartires en reunión
Calcule una frase de tiempo transcurrido estable para una revisión o un compartir a partir del mismo inicio y del día de calendario de hoy, incluidos los intervalos cero del mismo día.
Preguntas frecuentes
¿Qué ocurre si la fecha de sobriedad es posterior a la fecha actual?
El tiempo transcurrido en sobriedad no está definido cuando la fecha de inicio es posterior a la de referencia, y ese fallo no se factura.
¿Cómo se tratan los días bisiestos como el 29 de febrero?
Los años bisiestos siguen la regla gregoriana 4 / 100 / 400. Al sumar meses de calendario se recorta al último día del mes de destino, de modo que el 29 de febrero más doce meses en un año común se convierte en el 28 de febrero.
¿Por qué el primer día aparece como cero días?
Porque el conteo es exclusivo: si la fecha de inicio y la de consulta coinciden, el resultado es cero años, meses y días. Algunos grupos cuentan ese primer día como el día uno, así que su cifra queda una por encima.
¿También muestra el total de días?
Sí. Además de años, meses y días, obtiene el total de días completos entre las dos fechas. Del 15 de enero de 2020 al 25 de julio de 2026 son 2383 días.
¿Qué pasa si el mes siguiente es más corto?
El día se ajusta al final de ese mes. Un inicio el 31 de enero cumple un mes el último día de febrero, que es el 29 de febrero en un año bisiesto.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/health/sobriety \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"sobriety_date":"2020-01-15","current_date":"2026-07-25"}'const res = await fetch("https://api.kit.forhosting.com/health/sobriety", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"sobriety_date": "2020-01-15",
"current_date": "2026-07-25"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/sobriety",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"sobriety_date": "2020-01-15",
"current_date": "2026-07-25"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/sobriety", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"sobriety_date":"2020-01-15","current_date":"2026-07-25"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"sobriety_date":"2020-01-15","current_date":"2026-07-25"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/sobriety", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"sobriety_date": "2020-01-15",
"current_date": "2026-07-25"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.sobriety",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Envíe dos fechas del calendario gregoriano en forma YYYY-MM-DD. sobriety_date es el inicio de la sobriedad continua, y current_date es el día de referencia porque este motor nunca lee un reloj de pared. La respuesta informa los años, meses y días transcurridos, el recuento exclusivo total_days y una frase breve elapsed que puede imprimirse en una ficha o una tarjeta. Si la fecha de sobriedad cae después de la fecha actual, la tarea falla con invalid_input y no se factura.
Qué significa el tiempo transcurrido en sobriedad en años, meses y días civiles
Esta calculadora trata ambos extremos como fechas gregorianas sin hora del día, de modo que un inicio 2020-01-15 y un día de referencia 2026-07-25 equivalen a seis años, seis meses y diez días, con un recuento exclusivo total_days de los días civiles enteros entre esas dos medianoches. La misma fecha en ambos campos es un intervalo cero válido: si sobriety_date coincide con current_date el motor devuelve cero años, cero meses, cero días y total_days de cero, que es el tiempo exclusivo honesto en el día uno.
Contrato de entrada, la regla de inicio futuro y la forma de la respuesta
Las claves de salida opcionales se omiten en lugar de fijarse a null. Haga POST de un objeto JSON con dos campos de calendario obligatorios. sobriety_date es el primer día de sobriedad continua como cadena estricta de año de cuatro dígitos, guion, mes de dos dígitos, guion y día de dos dígitos; se aceptan los alias start_date, sober_since y date_from para que diarios y formularios conserven los nombres habituales. current_date es el día de referencia usado como hoy o como el día cuyo tiempo transcurrido se desea informar; los alias as_of, as_of_date, today y date_to apuntan al mismo análisis. Cada campo se valida como día gregoriano real en los años del uno al nueve mil novecientos noventa y nueve, incluidas las reglas del día bisiesto, de modo que valores como el 31 de abril, el 29 de febrero en un año común, 13-01, cadenas vacías y no cadenas fallan con invalid_input nombrando el campo. Si sobriety_date cae después de current_date el inicio está en el futuro respecto del día de referencia y la tarea falla con invalid_input; el tiempo transcurrido en sobriedad no está definido para un inicio que aún no ha ocurrido, y ese fallo no se factura. En caso de éxito el cuerpo ecoa las cadenas normalizadas sobriety_date y current_date, devuelve enteros years, months y days del desglose civil, informa total_days como la diferencia ordinal exclusiva y adjunta elapsed, una frase imprimible con unidades en singular y plural correctas, por ejemplo '6 years, 6 months, 10 days' o '1 year, 0 months, 1 day'. Acompañe las cifras con su propio texto si desea una inscripción en la ficha; este endpoint hace solo la aritmética de calendario y no emite guiones de reunión, consejo médico ni un diagnóstico de trastorno por consumo de sustancias.
Dónde rinde una API de tiempo transcurrido en sobriedad, precios y límites honestos
Las fichas de recuperación, las tarjetas de aniversario y las revisiones con el padrino son el trabajo habitual: ya se conoce la fecha de inicio y se desea una línea estable de años-meses-días que pueda leerse en voz alta o imprimirse sin restar meses a mano y equivocar febrero. No cuenta horas, minutos ni segundos, no modela ventanas de recaída y no decide si un tropiezo reinicia un reloj personal: esa política pertenece a la persona y a su programa. Las aplicaciones de bienestar, los diarios de recuperación y los bots de acompañamiento pueden llamar al mismo contrato en lugar de recodificar tablas de años bisiestos en cada cliente, fijando current_date desde el día de calendario local de la persona para que quien cruce una línea de cambio de fecha siga viendo el día que pretendía. Las llamadas API prepagadas usan saldo KIT a $0.002 por elemento exitoso; los fallos de validación nunca consumen saldo. Esto es una heurística de calendario, no un dispositivo médico de diagnóstico ni un sustituto de un programa de recuperación, de un clínico o de la atención de urgencia. No confunda este endpoint con una herramienta genérica de diferencia entre fechas que se busca cuando se desea restar dos fechas cualesquiera: la intención de búsqueda aquí es el tiempo en sobriedad desde un inicio, y el contrato de error es la regla de inicio futuro que un restador general no anunciaría. Mantenga las solicitudes pequeñas, fije en las pruebas los years, months, days y total_days devueltos, y obtendrá sobriedad transcurrida reproducible para correctores de tareas, complementos de LMS y workers de borde sin montar una biblioteca de calendario propia.
Casos de integración
Aplicaciones de bienestar y diarios de recuperación
Incruste el tiempo transcurrido en sobriedad en una aplicación o un diario mediante la API, pasando current_date desde el día local de la persona para que los años bisiestos sigan siendo coherentes.
Preguntas técnicas
¿Cómo cuenta la calculadora de sobriedad los años, los meses y los días?
Analiza sobriety_date y current_date como valores gregorianos YYYY-MM-DD, toma la diferencia exclusiva de días enteros como total_days y luego informa años, meses y días restantes civiles mediante suma de meses de calendario con recorte en los meses cortos.
¿Por qué hay que enviar current_date en lugar de usar hoy de forma automática?
El motor nunca lee un reloj de pared ni una zona horaria, de modo que el widget gratuito y la API permanecen idénticos. Suministre el día de calendario de referencia que pretenda; se aceptan los alias as_of, as_of_date, today y date_to.
¿Cuánto cuesta un cálculo de sobriedad?
La herramienta del navegador es gratuita. Las solicitudes API usan saldo KIT prepago a $0.002 por llamada exitosa; las fechas inválidas y un inicio futuro no se facturan.