Calcule a contagem regressiva até uma data-alvo
Saiba quanto falta para uma data: de 25 de julho de 2026, às 10:15 UTC, até 28 de julho de 2026, às 12:45 UTC, são 3 dias, 2 horas e 30 minutos, ou 4470 minutos. Você informa o momento de partida, então nenhum relógio interfere. 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
- Atual
- 2026-07-25T10:15:00Z
- Alvo
- 2026-07-28T12:45:00Z
- Dias
- 3
- Horas
- 2
- Minutos
- 30
- Total de minutos
- 4.470
Calcule uma contagem regressiva até uma data-alvo sem depender do relógio do computador. Informe a data e a hora atuais e o alvo futuro como valores ISO-8601 para receber uma divisão estável em dias completos, horas restantes e minutos restantes. Entradas explícitas tornam a mesma solicitação reproduzível em testes, tarefas agendadas, ferramentas web e rotinas de servidor. Os deslocamentos de fuso são normalizados antes da subtração. Se o alvo já passou, a solicitação retorna erro, a menos que você ative deliberadamente o modo decorrido, evitando que um prazo vencido seja confundido com tempo restante.
Informe explicitamente o horário atual e o horário-alvo
Cada uma aceita uma data no formato YYYY-MM-DD ou uma data e hora ISO-8601. Uma data sem horário é interpretada como meia-noite UTC, o que é útil para marcos definidos por dia. Para prazos precisos, inclua horas e minutos e, de preferência, um Z final ou um deslocamento numérico como +02:00.
A calculadora converte as duas entradas para uma linha do tempo absoluta comum antes da subtração. Assim, duas strings que descrevem o mesmo instante produzem uma contagem zerada, mesmo que exibam horários locais diferentes. O mecanismo valida a duração dos meses gregorianos e os anos bissextos, sem transferir datas impossíveis para outro mês.
Horários malformados, deslocamentos inválidos, campos ausentes e valores que não sejam strings também são rejeitados. Frações de segundo são aceitas, mas a saída usa somente minutos inteiros; segundos restantes são descartados para não causar arredondamento inesperado para cima.
Interprete a contagem e trate alvos vencidos com segurança
O tratamento de datas vencidas é mais rigoroso. Esse padrão impede que um intervalo negativo seja transformado silenciosamente em uma contagem com aparência positiva. Se o seu fluxo realmente precisa mostrar há quanto tempo um prazo passou, envie elapsed como true.
Essa opção explícita simplifica o texto posterior: mostre “restante” para um prazo ativo e “decorrido” ou “vencido” para um concluído, sem deduzir o estado pelos números. Um alvo exatamente igual a current é válido e retorna todos os componentes de duração zerados.
Use resultados determinísticos em aplicativos e automações
Esta capacidade atende páginas de lançamento, encerramentos de inscrição, preparação de eventos, janelas de manutenção, lembretes de pagamento e qualquer fluxo que já conheça o instante considerado atual. Deslocamentos numéricos são aplicados diretamente; interpretar o horário de verão cabe ao cliente, que deve enviar o deslocamento correto de cada instante local em vez do nome de uma cidade. O cálculo mede tempo decorrido comum em dias fixos de vinte e quatro horas.
Ele não conta dias úteis, pula fins de semana, consulta feriados, agenda notificações nem se atualiza continuamente. Para renovar uma tela ativa, envie outro cálculo com current mais recente. Trate erros de validação separadamente para solicitar uma correção diante de uma data malformada ou de um alvo passado não autorizado.
Casos de uso
Contagem para lançamento
Transforme um instante atual conhecido e o prazo de lançamento de um produto em dígitos normalizados para uma página de estreia.
Monitoramento de prazos
Verifique o tempo antes do fechamento de inscrições ou pagamentos e trate alvos vencidos inesperados como erros.
Relatório de marco decorrido
Ative o modo decorrido para informar dias, horas e minutos completos desde a ocorrência de um evento conhecido.
Perguntas frequentes
A calculadora usa a hora atual do sistema?
Não. Você deve informar current explicitamente, tornando cada cálculo determinístico e reproduzível.
O que acontece quando o alvo está no passado?
Quando ativado, o resultado mostra o tempo desde o alvo e define direction como elapsed.
Deslocamentos de fuso horário são aceitos?
Sim. Use Z ou um deslocamento numérico como +02:00. As entradas são normalizadas para a mesma linha do tempo absoluta antes da subtração.
Como os segundos são tratados?
Você pode informá-los, mas o resultado apresenta minutos completos. A fração final de minuto é descartada, sem arredondamento para cima.
A contagem regressiva desconta fins de semana e feriados?
Não. Ela mede o tempo corrido em dias fixos de 24 horas, então fins de semana e feriados contam como qualquer outro dia. Para dias úteis é preciso outro cálculo.
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/math/countdown-to-date \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"current":"2026-07-25T10:15:00Z","target":"2026-07-28T12:45:00Z"}'const res = await fetch("https://api.kit.forhosting.com/math/countdown-to-date", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"current": "2026-07-25T10:15:00Z",
"target": "2026-07-28T12:45:00Z"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/countdown-to-date",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"current": "2026-07-25T10:15:00Z",
"target": "2026-07-28T12:45:00Z"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/countdown-to-date", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"current":"2026-07-25T10:15:00Z","target":"2026-07-28T12:45:00Z"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"current":"2026-07-25T10:15:00Z","target":"2026-07-28T12:45:00Z"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/countdown-to-date", 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
{
"current": "2026-07-25T10:15:00Z",
"target": "2026-07-28T12:45:00Z"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.countdown_to_date",
"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
Informe explicitamente o horário atual e o horário-alvo
Comece com duas strings obrigatórias: current e target. Informar current em vez de pedir que o serviço leia o próprio relógio é proposital: exemplos salvos, testes automatizados, rotinas de faturamento e chamadas repetidas à API tornam-se determinísticos.
Interprete a contagem e trate alvos vencidos com segurança
Uma contagem futura bem-sucedida retorna days, hours, minutes, total_minutes, direction e is_past. Os três campos de exibição formam uma duração normalizada: hours sempre fica entre zero e vinte e três, e minutes entre zero e cinquenta e nove. total_minutes contém a quantidade absoluta de minutos completos e serve para ordenar registros, comparar limites ou decidir quando alterar uma interface. Para um alvo futuro ou exatamente igual, direction é remaining e is_past é false. Quando target representa um instante anterior a current, a solicitação comum falha e informa que elapsed deve ser ativado. O resultado mantém os componentes não negativos, direction muda para elapsed e is_past para true.
Use resultados determinísticos em aplicativos e automações
Um cliente pode mapear days, hours e minutes diretamente para cartões de contagem regressiva e guardar total_minutes para alertas e ordenação. Como a implementação nunca consulta Date, o relógio do sistema, um banco de fusos, a rede nem valores aleatórios, um JSON idêntico sempre produz a mesma saída. Isso é útil quando uma fila repete uma tarefa ou quando um relatório histórico precisa ser recriado. A versão do navegador executa localmente a mesma operação pura, enquanto a automação por API custa US$ 0,002 por item.
Perguntas técnicas
Quanto custa um cálculo pela API?
Cada item bem-sucedido da API custa US$ 0,002. A calculadora no navegador pode executar localmente a mesma lógica determinística.