Pular para o conteúdo
Toolbox BrasilToolbox Brasil

Como Calcular Dias Úteis Entre Duas Datas (com Feriados)

·7 min de leitura·Por Equipe Toolbox Brasil

Prazos processuais, entregas, SLA de atendimento, contagem de férias: muita coisa é medida em dias úteis, não em dias corridos. Calcular isso à mão é fácil de errar quando o intervalo cruza vários fins de semana e feriados. Veja a lógica e as fórmulas prontas.


Índice


Dias corridos x dias úteis

  • Dias corridos: todos os dias entre as duas datas, incluindo sábados, domingos e feriados. É o cálculo usado para idade e para a maioria dos prazos contratuais em direito civil.
  • Dias úteis: apenas segunda a sexta, descontando feriados. É o padrão de prazos processuais (CPC), trabalhistas e de vários SLAs comerciais.

Para o cálculo de dias corridos entre duas datas quaisquer, veja Como calcular idade exata — o mesmo algoritmo de diferença de datas se aplica.


A lógica do cálculo

Para contar dias úteis entre uma data inicial e uma final:

  1. Percorra cada dia do intervalo (normalmente excluindo o dia inicial e incluindo o final, mas confira a regra do seu contexto).
  2. Para cada dia, verifique o dia da semana. Se for sábado ou domingo, ignore.
  3. Se a data estiver na sua lista de feriados, ignore.
  4. Some 1 para todos os demais.

Em pseudocódigo:

function diasUteis(inicio, fim, feriados) {
  let total = 0;
  const d = new Date(inicio);
  d.setDate(d.getDate() + 1); // exclui o dia inicial
  while (d <= fim) {
    const diaSemana = d.getDay(); // 0 = domingo, 6 = sábado
    const iso = d.toISOString().slice(0, 10);
    if (diaSemana !== 0 && diaSemana !== 6 && !feriados.includes(iso)) {
      total++;
    }
    d.setDate(d.getDate() + 1);
  }
  return total;
}

A parte sensível é a lista de feriados: feriados fixos (1/1, 21/4, 1/5, 7/9, 12/10, 2/11, 15/11, 25/12) são simples; os móveis (Carnaval, Sexta-feira Santa, Corpus Christi) dependem da data da Páscoa e mudam todo ano. Feriados municipais e estaduais não entram numa lista nacional.


Exemplo passo a passo

Quantos dias úteis entre quinta, 30/04/2026 e sexta, 08/05/2026?

| Data | Dia | Conta? | Motivo | |---|---|---|---| | 01/05 (sex) | sexta | não | feriado (Dia do Trabalho) | | 02/05 (sáb) | sábado | não | fim de semana | | 03/05 (dom) | domingo | não | fim de semana | | 04/05 (seg) | segunda | sim | dia útil | | 05/05 (ter) | terça | sim | dia útil | | 06/05 (qua) | quarta | sim | dia útil | | 07/05 (qui) | quinta | sim | dia útil | | 08/05 (sex) | sexta | sim | dia útil |

Excluindo o dia inicial (30/04) e incluindo o final: 5 dias úteis. São 8 dias corridos no mesmo intervalo — a diferença é o feriado e o fim de semana. Com a função NETWORKDAYS, que conta as duas pontas, o resultado seria 6 (ela inclui 30/04).


Feriados nacionais de 2026

| Data | Feriado | |---|---| | 01/01 | Confraternização Universal | | 16–17/02 | Carnaval (móvel) | | 03/04 | Sexta-feira Santa (móvel) | | 21/04 | Tiradentes | | 01/05 | Dia do Trabalho | | 04/06 | Corpus Christi (móvel) | | 07/09 | Independência | | 12/10 | Nossa Senhora Aparecida | | 02/11 | Finados | | 15/11 | Proclamação da República | | 25/12 | Natal |

Confirme sempre feriados estaduais e municipais da sua cidade — eles também suspendem prazos locais.


Feriados móveis: como calcular

Carnaval, Sexta-feira Santa e Corpus Christi giram em torno da Páscoa, que cai no primeiro domingo após a primeira lua cheia depois do equinócio de março. O algoritmo de Gauss/Meeus calcula a data:

function pascoa(ano) {
  const a = ano % 19;
  const b = Math.floor(ano / 100);
  const c = ano % 100;
  const d = Math.floor(b / 4);
  const e = b % 4;
  const f = Math.floor((b + 8) / 25);
  const g = Math.floor((b - f + 1) / 3);
  const h = (19 * a + b - d - g + 15) % 30;
  const i = Math.floor(c / 4);
  const k = c % 4;
  const l = (32 + 2 * e + 2 * i - h - k) % 7;
  const m = Math.floor((a + 11 * h + 22 * l) / 451);
  const mes = Math.floor((h + l - 7 * m + 114) / 31);
  const dia = ((h + l - 7 * m + 114) % 31) + 1;
  return new Date(ano, mes - 1, dia);
}

function feriadosMoveis(ano) {
  const p = pascoa(ano);
  const add = (base, dias) => {
    const x = new Date(base);
    x.setDate(x.getDate() + dias);
    return x.toISOString().slice(0, 10);
  };
  return {
    carnavalTerca: add(p, -47),
    sextaSanta: add(p, -2),
    corpusChristi: add(p, 60),
  };
}

Junte esse resultado aos feriados fixos do ano e você tem a lista completa para a função diasUteis.


Fórmula no Excel e no Google Sheets

Ambos têm a função NETWORKDAYS (em português do Excel, DIATRABALHOTOTAL):

=NETWORKDAYS(data_inicial; data_final; intervalo_de_feriados)
  • data_inicial e data_final: as duas datas (a inicial é contada por essa função).
  • intervalo_de_feriados: um intervalo com as datas dos feriados (opcional).

Exemplo com feriados numa coluna F2:F15:

=NETWORKDAYS(A2; B2; $F$2:$F$15)

Para semanas de trabalho diferentes de seg–sex, use NETWORKDAYS.INTL, cujo 3º argumento define o fim de semana (1 = sáb+dom, 7 = sex+sáb, 11 = só domingo):

=NETWORKDAYS.INTL(A2; B2; 11; $F$2:$F$15)

Para somar X dias úteis a uma data (achar o vencimento), use WORKDAY / WORKDAY.INTL:

=WORKDAY(A2; 10; $F$2:$F$15)   → 10 dias úteis depois de A2

Ferramenta gratuita

Precisa da diferença exata entre duas datas?

A Calculadora de Idade calcula o intervalo entre duas datas em anos, meses e dias corridos — o ponto de partida para depois descontar fins de semana e feriados.

Abrir a calculadora

Casos de uso

  • Prazos processuais: contagem em dias úteis conforme o CPC.
  • Logística e e-commerce: previsão de entrega "em até X dias úteis".
  • SLA de suporte: tempo de resposta e resolução dentro do horário comercial.
  • RH: aviso prévio, banco de horas, contagem de férias.

Para converter o resultado em outras unidades (horas úteis, por exemplo), o Conversor de Unidades ajuda; para medir tempo real gasto em tarefas, use o Cronômetro Online.


Perguntas Frequentes

O dia inicial entra na contagem?

Depende da regra do seu contexto. Prazos processuais costumam excluir o dia de início e incluir o de vencimento. Já a função NETWORKDAYS do Excel inclui as duas pontas. Sempre confira a norma aplicável.


Como lido com feriados móveis?

Carnaval, Sexta-feira Santa e Corpus Christi dependem da data da Páscoa e mudam a cada ano. Para cálculos recorrentes, mantenha uma tabela de feriados atualizada por ano.


Feriado que cai no fim de semana "vira" segunda?

No Brasil, em regra não. O feriado nacional que cai no sábado ou domingo não é transferido para o dia útil seguinte (diferente de alguns outros países).


Ponto facultativo conta como dia útil?

Juridicamente, sim — ponto facultativo (como a quarta-feira de Cinzas até as 14h) não é feriado e não suspende prazos processuais. Na prática comercial, muitas empresas tratam como não útil; defina isso na sua lista de exceções.


Sábado é dia útil para bancos?

Para efeito bancário e de compensação, não: sábado, domingo e feriados não são dias úteis. Já para o comércio, sábado costuma ser dia útil. Ajuste o parâmetro de fim de semana conforme o contexto.


Como calcular horas úteis, e não dias?

Conte os dias úteis do intervalo, multiplique pela jornada (por exemplo, 8h) e ajuste as pontas pelo horário de início e fim. Para converter o total em minutos ou segundos, use o Conversor de Unidades.


Existe diferença entre "dias úteis" e "dias corridos" no vencimento de boletos?

Sim. Boletos e muitos contratos usam dias corridos; se o vencimento cai em dia não útil, costuma ser pago no próximo dia útil. Prazos processuais usam dias úteis.


Ferramentas relacionadas

Leia também Como calcular idade exata para a lógica de diferença entre datas em dias corridos.