Calculadora de sobriedade
Informe o primeiro dia da sua sobriedade e a data de hoje para ver o tempo em anos, meses e dias completos: de 15 de janeiro de 2020 a 25 de julho de 2026 são 6 anos, 6 meses e 10 dias. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Data de sobriedade
- 2020-01-15
- Data atual
- 2026-07-25
- Anos
- 6
- Meses
- 6
- Dias
- 10
- Total de dias
- 2.383
Uma calculadora de sobriedade responde a uma pergunta de calendário que pessoas em recuperação, padrinhos e aplicativos de bem-estar fazem todos os dias: conhecido o dia em que o álcool, as drogas ou outra substância saíram de cena, quantos anos, meses e dias inteiros se passaram até uma data atual escolhida.
O que o tempo decorrido em sobriedade significa em anos, meses e dias civis
O tempo decorrido em sobriedade é um intervalo de calendário civil, não um cronômetro. Quem está em recuperação costuma querer o mesmo detalhamento de uma reunião de fichas: quantos anos inteiros, depois os meses restantes e em seguida os dias restantes, contados desde o primeiro dia de calendário de sobriedade contínua até um dia de referência escolhido.
O detalhamento civil soma meses de calendário a partir da data de início, recorta o dia quando o mês de destino é mais curto (assim 31 de janeiro mais um mês vira o último dia de fevereiro, inclusive 29 de fevereiro em ano bissexto), recua a contagem de meses se essa data recortada ultrapassar o dia de referência e, por fim, informa os dias inteiros que restam.
Anos bissextos seguem a regra conhecida de quatro, cem e quatrocentos, de modo que um início em 29 de fevereiro de 2024 alcança 28 de fevereiro de 2025 como um ano com o dia recortado, e 1 de março de 2025 como um ano e um dia. A contagem inclusiva que chamaria aquele primeiro dia de calendário de «um dia sóbrio» é convenção de reunião, não este contrato.
Casos de uso
Fichas de recuperação e cartões de aniversário
Informe o início da sobriedade e a data da cerimônia para imprimir anos, meses e dias em uma ficha, cartão ou medalha sem contar fevereiro à mão.
Acompanhamentos com o padrinho e compartilhamentos em reunião
Calcule uma frase de tempo decorrido estável para um acompanhamento ou um compartilhamento a partir do mesmo início e do dia de calendário de hoje, inclusive intervalos zero do mesmo dia.
Perguntas frequentes
O que acontece se a data de sobriedade for posterior à data atual?
O tempo decorrido em sobriedade não está definido quando a data de início é posterior à de referência, e essa falha não é faturada.
Como são tratados os dias bissextos como 29 de fevereiro?
Anos bissextos seguem a regra gregoriana 4 / 100 / 400. Somar meses de calendário recorta para o último dia do mês de destino, de modo que 29 de fevereiro mais doze meses num ano comum vira 28 de fevereiro.
Por que o primeiro dia aparece como zero dias?
Porque a contagem é exclusiva: se a data de início e a de referência forem iguais, o resultado é zero anos, meses e dias. Alguns grupos contam esse primeiro dia como dia um, então o número deles fica um acima.
A calculadora também mostra o total de dias?
Sim. Além de anos, meses e dias, você recebe o total de dias completos entre as duas datas. De 15 de janeiro de 2020 a 25 de julho de 2026 são 2383 dias.
O que acontece quando o mês seguinte é mais curto?
O dia é ajustado para o fim desse mês. Quem começou em 31 de janeiro completa um mês no último dia de fevereiro, que é 29 de fevereiro em ano bissexto.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"sobriety_date": "2020-01-15",
"current_date": "2026-07-25"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.sobriety",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Envie duas datas do calendário gregoriano no formato YYYY-MM-DD. sobriety_date é o início da sobriedade contínua, e current_date é o dia de referência porque este motor nunca lê um relógio de parede. A resposta informa os anos, meses e dias decorridos, a contagem exclusiva total_days e uma frase curta elapsed que você pode imprimir em uma ficha ou um cartão. Se a data de sobriedade cair depois da data atual, a tarefa falha com invalid_input e não é faturada.
O que o tempo decorrido em sobriedade significa em anos, meses e dias civis
Esta calculadora trata as duas pontas como datas gregorianas sem hora do dia, de modo que um início 2020-01-15 e um dia de referência 2026-07-25 equivalem a seis anos, seis meses e dez dias, com uma contagem exclusiva total_days dos dias civis inteiros entre aquelas duas meias-noites. A mesma data nos dois campos é um intervalo zero válido: se sobriety_date coincide com current_date o motor devolve zero anos, zero meses, zero dias e total_days igual a zero, o tempo exclusivo honesto no dia um.
Contrato de entrada, a regra de início futuro e o formato da resposta
Chaves de saída opcionais são omitidas em vez de definidas como null. Envie por POST um objeto JSON com dois campos de calendário obrigatórios. sobriety_date é o primeiro dia de sobriedade contínua como cadeia estrita de ano com quatro dígitos, hífen, mês com dois dígitos, hífen e dia com dois dígitos; aceitam-se os alias start_date, sober_since e date_from para que diários e formulários mantenham os nomes habituais. current_date é o dia de referência usado como hoje ou como o dia cujo tempo decorrido você quer informar; os alias as_of, as_of_date, today e date_to mapeiam para o mesmo analisador. Cada campo é validado como dia gregoriano real nos anos de um a nove mil novecentos e noventa e nove, inclusive as regras de dia bissexto, de modo que valores como 31 de abril, 29 de fevereiro num ano comum, 13-01, cadeias vazias e não cadeias falham com invalid_input nomeando o campo. Se sobriety_date cair depois de current_date o início está no futuro em relação ao dia de referência e a tarefa falha com invalid_input; o tempo decorrido em sobriedade não está definido para um início que ainda não aconteceu, e essa falha não é faturada. Em caso de sucesso o corpo ecoa as cadeias normalizadas sobriety_date e current_date, devolve inteiros years, months e days do detalhamento civil, informa total_days como a diferença ordinal exclusiva e anexa elapsed, uma frase imprimível com unidades no singular e no plural corretas, por exemplo '6 years, 6 months, 10 days' ou '1 year, 0 months, 1 day'. Acompanhe os números com o próprio texto se quiser uma inscrição na ficha; este endpoint faz só a aritmética de calendário e não emite roteiros de reunião, conselho médico nem um diagnóstico de transtorno por uso de substâncias.
Onde uma API de tempo decorrido em sobriedade agrega valor, preços e limites honestos
Fichas de recuperação, cartões de aniversário e acompanhamentos com o padrinho são o trabalho habitual: você já conhece a data de início e quer uma linha estável de anos-meses-dias para ler em voz alta ou imprimir sem subtrair meses à mão e errar fevereiro. Não conta horas, minutos nem segundos, não modela janelas de recaída e não decide se um deslize reinicia um relógio pessoal: essa política pertence à pessoa e ao programa dela. Aplicativos de bem-estar, diários de recuperação e bots de acompanhamento podem chamar o mesmo contrato em vez de recodificar tabelas de ano bissexto em cada cliente, fixando current_date a partir do dia de calendário local da pessoa para que quem cruza uma linha de data continue vendo o dia que pretendeu. Chamadas API pré-pagas usam saldo KIT a US$ 0,002 por item bem-sucedido; falhas de validação nunca consomem saldo. Isto é uma heurística de calendário, não um dispositivo médico de diagnóstico nem um substituto de um programa de recuperação, de um clínico ou do atendimento de emergência. Não confunda este endpoint com uma ferramenta genérica de diferença entre datas que as pessoas buscam quando querem subtrair duas datas quaisquer: a intenção de busca aqui é o tempo sóbrio a partir de um início de sobriedade, e o contrato de erro é a regra de início futuro que um subtrator geral não anunciaria. Mantenha as solicitações pequenas, fixe nos testes os years, months, days e total_days devolvidos, e você obtém sobriedade decorrida reproduzível para corretores de tarefa, plugins de LMS e workers de borda sem levantar uma biblioteca de calendário própria.
Casos de integração
Aplicativos de bem-estar e diários de recuperação
Incorpore o tempo decorrido em sobriedade em um aplicativo ou um diário pela API, passando current_date a partir do dia local da pessoa para que os anos bissextos permaneçam coerentes.
Perguntas técnicas
Como a calculadora de sobriedade conta anos, meses e dias?
Ela analisa sobriety_date e current_date como valores gregorianos YYYY-MM-DD, toma a diferença exclusiva de dias inteiros como total_days e depois informa anos, meses e dias restantes civis com soma de meses de calendário e recorte nos meses curtos.
Por que é preciso enviar current_date em vez de usar hoje automaticamente?
O motor nunca lê um relógio de parede nem um fuso horário, de modo que o widget gratuito e a API permanecem idênticos. Forneça o dia de calendário de referência que você pretende; aceitam-se os alias as_of, as_of_date, today e date_to.
Quanto custa um cálculo de sobriedade?
A ferramenta do navegador é gratuita. Solicitações API usam saldo KIT pré-pago a US$ 0,002 por chamada bem-sucedida; datas inválidas e um início futuro não são faturados.