Dias úteis até uma data sem fins de semana nem feriados
De sexta, 3, a sexta, 10 de julho de 2026, faltam 4 dias úteis quando a segunda, 6 de julho, é feriado. Informe a data de partida, a data-alvo e as suas próprias folgas e veja os dias de trabalho que restam. 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 referência
- 2026-07-03
- Data-alvo
- 2026-07-10
- Feriados
- 2026-07-06, 2026-07-06, 2026-07-04
- Dias úteis
- 4
- Dias corridos
- 7
- Feriados excluídos
- 1
Esta calculadora mede o tempo útil entre uma data de referência explícita e uma data-alvo também explícita. Ela ignora sábados e domingos, remove os feriados em dias úteis informados por você e nunca depende da data atual nem do fuso horário do dispositivo. A referência fica fora da contagem e o alvo entra nela. Alvos anteriores geram valores negativos, permitindo descrever tanto prazos futuros quanto marcos que já passaram.
Defina uma referência fixa e um alvo
O cálculo exclui a referência e inclui o alvo. Se a referência for uma sexta-feira e o alvo a segunda seguinte, o resultado será um dia útil: a segunda-feira. Datas iguais retornam zero.
Essa convenção evita contar novamente um dia já concluído e funciona bem em contagens regressivas e registros históricos. Os dados são validados, não corrigidos silenciosamente. Como as duas datas são explícitas, uma solicitação arquivada continua reproduzível.
Remova apenas os fechamentos aplicáveis
Sábados e domingos nunca entram na contagem. Use o array opcional holidays para fechamentos da sua organização, mercado, contrato ou projeto, todos em formato ISO rigoroso. A calculadora não baixa calendários nacionais nem presume uma região, pois essas regras variam e mudam.
Você fornece exatamente as datas observadas. Quando houver folga compensatória, informe a data útil efetivamente observada.
Use aritmética UTC reproduzível
O solucionador trabalha somente com inteiros de ano, mês e dia do calendário gregoriano. Ele não cria objetos Date do JavaScript, não lê o relógio, não consulta fusos, não acessa a rede e não usa aleatoriedade. Isso evita falhas na mudança do horário de verão, quando cálculos por timestamp podem encontrar dias com vinte e três ou vinte e cinco horas.
O navegador usa o mesmo solucionador puro.
Casos de uso
Acompanhar uma entrega
Meça os dias úteis restantes entre um marco registrado e a entrega contratual, aplicando os fechamentos da equipe.
Reproduzir um cálculo de SLA
Guarde datas e feriados com o chamado para recalcular o resultado durante uma auditoria posterior.
Verificar um fechamento financeiro
Conte dias operacionais até uma declaração, liquidação ou folha sem deslocamentos causados pelo fuso horário.
Perguntas frequentes
Os feriados são carregados automaticamente?
Não. Informe as datas exatas da sua política para manter o cálculo explícito e reproduzível.
Como feriados repetidos ou no fim de semana são tratados?
Duplicatas são removidas, e feriados no fim de semana não geram outro desconto.
Fuso horário ou horário de verão alteram a resposta?
Não. O cálculo usa aritmética gregoriana pura com semântica UTC e não consulta a hora local.
O dia de partida entra na conta?
Não. O dia de partida fica de fora e a data-alvo conta, porque a pergunta é quanto trabalho resta depois de um dia conhecido. De uma sexta até a segunda seguinte o resultado é 1, e duas datas iguais dão 0.
E se a data-alvo já tiver passado?
Você recebe um número negativo de dias úteis. Trocar as duas datas só muda o sinal, então o mesmo cálculo descreve prazos futuros e marcos que já ficaram para trás.
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/date/business-days-until-date \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"reference_date":"2026-07-03","target_date":"2026-07-10"}'const res = await fetch("https://api.kit.forhosting.com/date/business-days-until-date", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"reference_date": "2026-07-03",
"target_date": "2026-07-10"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/business-days-until-date",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"reference_date": "2026-07-03",
"target_date": "2026-07-10"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/business-days-until-date", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"reference_date":"2026-07-03","target_date":"2026-07-10"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"reference_date":"2026-07-03","target_date":"2026-07-10"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/business-days-until-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
{
"reference_date": "2026-07-03",
"target_date": "2026-07-10"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.business_days_until_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.
Limites
max_holidays | 10000 |
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
Defina uma referência fixa e um alvo
Informe reference_date e target_date como datas completas no formato rigoroso YYYY-MM-DD. Quando o alvo antecede a referência, business_days e calendar_days ficam negativos; trocar as pontas altera somente o sinal. Formatos locais, horários, zeros ausentes e datas impossíveis produzem invalid_input.
Remova apenas os fechamentos aplicáveis
Entradas repetidas são deduplicadas, feriados no fim de semana não são descontados novamente e datas fora do intervalo não produzem efeito. excluded_holidays informa somente os feriados únicos que retiraram um dia normalmente útil. Assim, fica fácil explicar a diferença entre a contagem que exclui apenas fins de semana e o resultado final.
Use aritmética UTC reproduzível
A mesma entrada produz o mesmo JSON em qualquer país. business_days é o resultado principal com sinal; calendar_days confere a extensão após a referência até o alvo; excluded_holidays registra as exclusões. Cada cálculo vale um item, e a solicitação API custa US$ 0,002.
Perguntas técnicas
A data de referência entra na contagem?
Não. O intervalo exclui reference_date e inclui target_date, representando o tempo útil após o marco inicial.
O que ocorre quando o alvo é anterior?
business_days e calendar_days ficam negativos, com a mesma magnitude do intervalo invertido.
Qual é o preço de uma solicitação API?
Um cálculo API concluído custa US$ 0,002. O mesmo solucionador determinístico também funciona no navegador.