Tutoriais
    Atualizado

    Calcular dias úteis entre duas datas: guia para devs e RH

    Aprenda a calcular dias úteis (x corridos), considerar feriados nacionais e usar nosso contador de dias. Passo a passo prático para devs, RH e contabilidade.

    Equipe Ferramentas Para Tudo26 de agosto de 20268 min de leitura

    Introdução

    Calcular dias úteis entre duas datas significa contar apenas os dias em que normalmente se trabalha, excluindo sábados, domingos e feriados. Essa diferença é crucial para RH, contabilidade e sistemas que medem prazos ou SLAs. Para acelerar o processo, use nosso contador de dias: /ferramentas/contador-dias, a ferramenta faz o cálculo automático considerando feriados que você informar.

    Dias úteis vs dias corridos, diferença rápida

    • Dias corridos: conta todos os dias do calendário entre duas datas, inclusive finais de semana e feriados. Exemplo: de 01/06 a 05/06 são 5 dias corridos.
    • Dias úteis: exclui sábados, domingos e feriados definidos. Exemplo: se 02/06 for domingo e 03/06 for feriado, então de 01/06 a 05/06 teremos 3 dias úteis.

    Por que isso importa? Folha de pagamento, vencimentos e prazos legais geralmente usam dias úteis. Sistemas automáticos precisam tratar essa regra corretamente pra evitar erros em descontos, multas e aviso prévio.

    Use já nossa calculadora: /ferramentas/contador-dias, ela acelera validações ao integrar feriados personalizados.

    Feriados nacionais e ponto de atenção (fixos vs móveis)

    • Feriados fixos: têm data anual definida (ex.: 7 de setembro). Fácil de programar.
    • Feriados móveis: dependem do calendário lunar ou regras (ex.: Carnaval, Páscoa). É preciso calcular a data a cada ano.

    Pontos práticos:

  1. Sempre mantenha uma lista de feriados por ano no sistema (nacionais, estaduais, municipais). Exemplo: Feriado municipal pode transformar um dia útil em não útil para colaboradores daquela cidade.
  2. Para aplicações que cobrem várias cidades, permita upload/seleção de feriados por contrato/filial.
  3. Se não houver lista, o padrão mínimo é excluir sábados e domingos; depois permita inclusão manual de feriados na ferramenta.
  4. Fonte oficial com feriados nacionais: consulte a lista do governo para garantir atualizações anuais.

    Algoritmo prático para contar dias úteis (passo a passo)

  5. Normalizar entradas: converta as datas para objetos de data (sem horário) e defina se o intervalo inclui a data final.
  6. Se data inicial > data final, trocar ou retornar erro conforme regra do sistema.
  7. Iterar do dia inicial até o dia final:
  8. a. Verificar se o dia é sábado ou domingo, se sim, pular.

    b. Verificar se a data consta na lista de feriados (nacional/estadual/municipal), se sim, pular.

    c. Caso contrário, incrementar contador de dias úteis.

  9. Retornar contador.
  10. Boas práticas:

    • Para intervalos longos, evite iteração dia a dia em linguagens onde performance importa, prefira contagem por blocos semanais e ajuste nas bordas.
    • Cache de feriados por ano reduz chamadas externas.
    • Documente se o sistema inclui a data final no cálculo (ex.: "inclusive"), comportamento heterogêneo causa bugs.

    Exemplo em JavaScript: função que exclui fins de semana e feriados

    Bloco de código abaixo mostra uma versão simples e direta para servidores ou scripts. Ajuste conforme timezone e inclusão de data final.

    ``javascript

    // dates are YYYY-MM-DD strings, holidays is array of 'YYYY-MM-DD'

    function countBusinessDays(startDate, endDate, holidays = [], includeEnd = true) {

    const start = new Date(startDate + 'T00:00:00');

    const end = new Date(endDate + 'T00:00:00');

    if (start > end) return 0;

    const endLimit = includeEnd ? end : new Date(end.getTime() - 24*60*60*1000);

    let count = 0;

    for (let d = new Date(start); d <= endLimit; d.setDate(d.getDate() + 1)) {

    const weekday = d.getDay(); // 0 = Sunday, 6 = Saturday

    const iso = d.toISOString().slice(0,10);

    if (weekday === 0 || weekday === 6) continue;

    if (holidays.includes(iso)) continue;

    count++;

    }

    return count;

    }

    // exemplo de uso

    const holidays = ['2024-04-21','2024-11-15'];

    console.log(countBusinessDays('2024-04-18','2024-04-25', holidays));

    ``

    Explicação rápida:

    • A função considera o intervalo inclusivo por padrão.
    • holidays deve conter datas ISO (YYYY-MM-DD). Para feriados móveis calcule as datas por ano e gere o array.
    • Para melhorar performance em intervalos de anos, calcule número inteiro de semanas entre datas e multiplique por 5, depois ajuste as bordas e feriados.

    Se preferir uma solução pronta, use nossa ferramenta: /ferramentas/contador-dias, ela já aceita feriados personalizados por ano.

    Quando incluir/excluir feriados da empresa? Casos comuns

    • Folha de pagamento: incluir todos os feriados (nacional + estadual + municipal) aplicáveis ao funcionário. Exemplo: um colaborador em Salvador deve ter feriados municipais considerados.
    • Aviso prévio e contratos: regra contratual ou legislação local determina se contagem é por dias corridos ou úteis, valide com o jurídico.
    • SLAs comerciais: normalmente se escolhe dias úteis, mas documente exceções (urgência 24/7, suporte técnico que atende fim de semana etc.).

    Exemplo prático: um empregado tem 10 dias corridos de férias de 01/11 a 10/11, se no período houver 1 feriado municipal e 1 domingo, o empregador pode manter 10 dias corridos; se a política usar dias úteis, as datas e o cálculo do retorno ao trabalho mudam.

    Conclusão

    Calcular dias úteis entre duas datas exige decidir claramente como tratar finais de semana, se a data final entra no cálculo e quais feriados aplicar (nacional, estadual, municipal). Para economizar tempo e evitar erros, use nosso contador de dias: /ferramentas/contador-dias, a ferramenta permite carregar feriados e testar cenários rapidamente.

    Perguntas frequentes (FAQ)

    Como o cálculo muda se a data inicial for fim de semana?

    Se a data inicial for sábado ou domingo, você normalmente não conta esse dia como útil e inicia a contagem no próximo dia útil. Em alguns processos internos pode haver regra diferente (ex.: começar a contar no próximo dia útil automaticamente). Defina e documente esse comportamento.

    Os feriados estaduais e municipais precisam ser considerados sempre?

    Depende do contexto. Para folha de pagamento e cálculos trabalhistas relacionados ao local de prestação de serviço, sim, feriados municipais/estaduais aplicáveis ao colaborador devem ser considerados. Para prazos contratuais que valem nacionalmente, apenas feriados nacionais podem ser relevantes.

    Qual a diferença entre incluir ou excluir o último dia no intervalo?

    Incluir o último dia (intervalo inclusivo) conta também a data final quando for útil; excluir (intervalo exclusivo) conta até o dia anterior. Exemplos simples podem gerar diferença de 1 dia, por isso documente a regra no sistema e nas comunicações.

    Links úteis

    • Ferramenta: /ferramentas/contador-dias (calcule agora com feriados personalizados)
    • Lista de feriados nacionais: fonte oficial do governo

    O Ferramentas Para Tudo (ferramentasparatudo.com.br) é um portal de utilitários online gratuito focado em resolver tarefas rápidas como calcular dias úteis entre datas.