Contar dias úteis entre datas e feriados
Este contador calcula os dias de segunda a sexta em um intervalo inclusivo e permite remover uma lista opcional de feriados.
Executar grátis
Ele atende prazos, condições de pagamento, escalas e processos em que dias corridos produzem uma resposta inadequada. As duas datas-limite são consideradas, feriados repetidos são ignorados e um feriado no sábado ou domingo não reduz o total duas vezes. O cálculo utiliza aritmética de calendário, sem depender do horário local, portanto a mesma entrada gera sempre o mesmo resultado.
Escolha o intervalo e entenda os limites
Informe as datas inicial e final exatamente no formato YYYY-MM-DD. O cálculo é inclusivo, portanto cada limite pode acrescentar um dia útil. Se as duas datas forem a mesma quarta-feira, o resultado será um, a menos que esse dia esteja na lista de feriados. Se o intervalo de um único dia cair em um domingo, o resultado será zero. Essa regra explícita ajuda ao comparar calculadoras, pois algumas excluem silenciosamente a primeira data ou tratam a última apenas como vencimento. Aqui, todos os dias corridos do início ao fim são avaliados. A data final não pode ser anterior à inicial: intervalos invertidos geram um erro de entrada, e não uma contagem negativa ou enganosa. O sistema também valida datas gregorianas reais, por isso valores impossíveis, como 30 de fevereiro, são rejeitados em vez de deslocados para outro mês.
Exclua feriados sem distorcer fins de semana
Adicione os feriados como uma lista opcional de datas YYYY-MM-DD. Um feriado diminui o resultado somente quando está dentro do intervalo e cai entre segunda e sexta. Se ocorrer no sábado ou domingo, não há nova subtração, pois esse dia já não integra a contagem semanal. Datas fora do intervalo são aceitas, mas não alteram o total, facilitando a reutilização de um calendário corporativo em diversos cálculos. Entradas repetidas contam apenas uma vez, mesmo quando calendários diferentes registram o mesmo fechamento. A ferramenta não escolhe automaticamente os feriados de um país: você fornece as datas válidas para seu contrato, escritório, escola, mercado ou jurisdição. Isso evita suposições sobre folgas compensatórias, feriados regionais ou políticas internas. Cada data é validada; um feriado mal formatado ou impossível retorna um erro claro, sem ser ignorado silenciosamente.
Use o resultado em planejamentos e automações
A resposta separa a quantidade final de dois dados de conferência: o total de dias de segunda a sexta antes dos feriados e o número de feriados úteis realmente excluídos. Assim, o cálculo fica fácil de explicar e verificar. Por exemplo, um coordenador pode demonstrar que o intervalo continha oito dias de semana e um feriado aplicável, resultando em sete dias úteis. Sistemas de folha, cobrança, suporte, logística e conformidade podem usar a mesma estrutura para conferir janelas de serviço sem depender do fuso horário do computador. O algoritmo usa aritmética inteira determinística e não consulta rede, data atual nem números aleatórios. Entradas idênticas produzem saídas idênticas no navegador e na API. O uso interativo nesta página é gratuito; cada solicitação de API custa US$ 0,002. Em cálculos recorrentes, armazene a jurisdição e a política junto à lista, pois a ferramenta avalia as datas fornecidas, mas não decide quais feriados a organização observa oficialmente.
Casos de uso
Medir um prazo de atendimento
Conte os dias de trabalho entre o recebimento e a conclusão, excluindo os fechamentos aplicáveis à equipe.
Conferir condições de pagamento
Calcule um intervalo inclusivo para análise do pagamento e informe os feriados bancários ou do escritório.
Planejar equipes e entregas
Compare períodos de projeto com uma contagem uniforme de segunda a sexta e uma lista reutilizável de feriados internos.
Perguntas frequentes
As datas inicial e final são incluídas?
Sim. Cada limite conta quando cai entre segunda e sexta e não é um feriado excluído.
O que ocorre quando um feriado cai no fim de semana?
Ele não produz efeito adicional, pois sábados e domingos já estão fora da contagem.
Feriados repetidos são contados mais de uma vez?
Não. A mesma data de feriado é excluída no máximo uma vez.
A ferramenta conhece os feriados do meu país?
Não. Forneça as datas válidas para sua jurisdição ou organização, inclusive folgas compensatórias observadas.
O que acontece se a data final vier antes da inicial?
O cálculo retorna um erro de entrada inválida, em vez de uma contagem negativa.
Quanto custa um cálculo pela API?
Cada solicitação de API usa o preço-base publicado de US$ 0,002; a calculadora no navegador é gratuita.
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/calc2/business-days-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_date":"2026-07-01","end_date":"2026-07-10"}'const res = await fetch("https://api.kit.forhosting.com/calc2/business-days-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_date": "2026-07-01",
"end_date": "2026-07-10"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calc2/business-days-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_date": "2026-07-01",
"end_date": "2026-07-10"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calc2/business-days-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_date":"2026-07-01","end_date":"2026-07-10"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_date":"2026-07-01","end_date":"2026-07-10"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calc2/business-days-count", 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
{
"start_date": "2026-07-01",
"end_date": "2026-07-10"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc2.business_days_count",
"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. |