Contador de Dias entre Datas: Calcule Dias Corridos e Úteis

O contador de dias entre datas calcula a duração de qualquer período em dias corridos e úteis. Selecione a data inicial e a data final, escolha se deseja incluir o primeiro e o último dia e defina se os feriados nacionais devem ser descontados. O resultado também apresenta semanas completas, dias restantes e a diferença de calendário em anos, meses e dias.

Calculadora de dias entre duas datas


Regras da contagem





Preencha as datas para conferir o resultado.

Resposta rápida

Dias corridos são todos os dias do intervalo, incluindo sábados, domingos e feriados. Dias úteis, nesta calculadora, são os dias de segunda a sexta-feira, com a possibilidade de excluir feriados nacionais. A diferença matemática mais comum exclui a data inicial e inclui a final. Para contar os dois extremos, marque as duas opções de inclusão.

Como usar o contador de dias entre datas

  1. Informe a data inicial: ela pode estar no passado, ser a data de hoje ou representar o começo de um prazo futuro.
  2. Selecione a data final: escolha o encerramento do período que deseja medir.
  3. Configure os extremos: marque se o primeiro dia, o último dia ou ambos devem participar da contagem.
  4. Defina a regra dos feriados: mantenha a opção ativada para descontar feriados nacionais que ocorram de segunda a sexta-feira.
  5. Confira os resultados: a ferramenta mostra dias corridos, úteis, fins de semana, feriados descontados, semanas e a diferença de calendário.

Se a segunda data for anterior à primeira, a ferramenta organiza o intervalo cronologicamente e informa essa alteração. Para consultar datas, dias da semana e outras referências, acesse também o Guia do Calendário.

Qual é a diferença entre dias corridos e dias úteis?

A escolha depende da finalidade do cálculo. Dias corridos representam a passagem contínua do tempo. Por isso, todos os dias entram na conta, sem distinção. Essa é a medida adequada para descobrir quantos dias faltam para uma viagem, quanto tempo passou desde um acontecimento ou qual é a distância entre duas datas comemorativas.

Já a contagem de dias úteis considera, como regra geral desta ferramenta, apenas segunda, terça, quarta, quinta e sexta-feira. Sábados e domingos são retirados. Quando a opção de feriados está ativa, um feriado nacional em dia de semana também é descontado.

Tipo de contagemO que entraUso comum
Dias corridosTodos os dias do períodoContagens regressivas, duração total e eventos
Dias úteis sem feriadosSegunda a sexta-feiraEstimativas simples de trabalho e atendimento
Dias úteis com feriadosSegunda a sexta, menos feriados nacionaisPlanejamento administrativo e operacional

“Dia útil” pode ter definição específica em contratos, normas administrativas, processos judiciais ou convenções coletivas. A calculadora oferece uma referência de calendário e não substitui a regra legal aplicável a cada situação.

Como funciona a inclusão da data inicial e final?

Duas pessoas podem obter resultados diferentes para o mesmo intervalo se adotarem convenções distintas. Entre 10 e 11 de um mês, por exemplo, há uma diferença matemática de um dia. Porém, uma contagem inclusiva considera tanto o dia 10 quanto o dia 11 e totaliza dois dias de calendário.

  • Excluir a inicial e incluir a final: corresponde à diferença convencional entre as datas.
  • Incluir as duas datas: conta todos os dias identificados no calendário, inclusive os dois extremos.
  • Incluir a inicial e excluir a final: mantém a duração convencional, mas altera qual extremo participa.
  • Excluir as duas datas: considera somente os dias localizados no interior do intervalo.

Quando as duas datas são iguais, a diferença convencional é zero. Para contar essa data como um dia completo, inclua os dois extremos. Essa configuração é especialmente importante em hospedagens, escalas, períodos de afastamento e prazos que estabelecem expressamente o começo ou o término da contagem.

Como os feriados são considerados nos dias úteis?

Ao ativar o desconto de feriados, a calculadora verifica os feriados nacionais brasileiros aplicáveis ao período. Um feriado só reduz os dias úteis se ocorrer entre segunda e sexta-feira. Quando cai no sábado ou domingo, ele já está fora da contagem e não deve ser descontado novamente.

Feriados estaduais e municipais não são incluídos porque variam conforme a localização. Pontos facultativos também não equivalem automaticamente a feriados: Carnaval e Corpus Christi, por exemplo, podem seguir calendários administrativos ou normas locais diferentes. Para um prazo formal, confira a legislação, o calendário do órgão responsável e os feriados da cidade e do estado envolvidos.

A legislação sobre feriados também pode mudar. O Dia Nacional de Zumbi e da Consciência Negra, em 20 de novembro, passou a integrar o calendário de feriados nacionais a partir de 2024. Em intervalos históricos, é recomendável confirmar quais regras vigoravam no ano consultado.

Conversão do período em semanas, meses e anos

As semanas podem ser obtidas diretamente a partir do total de dias: cada semana possui sete dias. Um período de 45 dias, por exemplo, corresponde a seis semanas completas e três dias. Para entender por que os anos nem sempre possuem a mesma quantidade de semanas completas, consulte o conteúdo sobre quantas semanas tem um ano.

Meses e anos exigem outro método, pois não têm duração fixa. Um mês pode ter 28, 29, 30 ou 31 dias, enquanto um ano pode ter 365 ou 366. Por isso, a ferramenta apresenta a decomposição de calendário entre as datas — em anos, meses e dias — em vez de simplesmente dividir o total por uma média.

Essa distinção evita interpretações incorretas. Trinta dias não representam necessariamente um mês exato: o resultado depende do ponto de partida. Da mesma forma, 365 dias podem atravessar parte de um ano bissexto sem corresponder à mesma combinação de datas em anos consecutivos.

Exemplos práticos de contagem

Período de segunda a sexta-feira

Considere uma data inicial na segunda e uma data final na sexta da mesma semana, sem feriado. Excluindo a segunda e incluindo a sexta, o resultado é de quatro dias. Incluindo as duas datas, são cinco dias corridos e cinco úteis. O exemplo mostra como a configuração dos extremos pode alterar a resposta mesmo quando não há fim de semana.

Intervalo que atravessa um fim de semana

Em uma contagem inclusiva de sexta a segunda, existem quatro dias corridos: sexta, sábado, domingo e segunda. Sem feriado, apenas sexta e segunda são úteis. Assim, o resultado é de quatro dias corridos e dois úteis.

Feriado em um dia de semana

Se um período possui cinco dias de segunda a sexta e um deles é feriado nacional, há cinco dias corridos, quatro úteis e um feriado descontado. Caso esse feriado ocorra no domingo, os dias úteis não sofrem uma segunda redução.

Para que serve uma calculadora de datas?

O recurso ajuda a planejar férias, viagens, entregas, estudos, eventos e etapas de projetos. Também permite medir a idade de um acontecimento, conferir a duração entre consultas ou organizar uma contagem regressiva. No Calendário Hoje, você encontra referências complementares para comparar períodos e consultar datas.

Para eventos anuais, existem páginas específicas com atualização automática, como a contagem de quantos dias faltam para o Natal e de quantos dias faltam para o Ano Novo. Em planejamentos ligados à observação do céu ou a tradições lunares, confira também o Calendário Lunar 2026.

Em cálculos de vencimentos, contratos e processos, use o resultado como apoio. Regras como suspensão de expediente, início no primeiro dia útil seguinte, feriados locais e contagem em dias úteis processuais precisam ser verificadas na fonte oficial competente.

Perguntas frequentes

O contador inclui o primeiro e o último dia?

Isso é configurável. Por padrão, a ferramenta exclui a data inicial e inclui a final, seguindo a diferença convencional. Marque as duas opções para fazer uma contagem totalmente inclusiva.

Sábado é considerado dia útil?

Não nesta calculadora. A contagem geral considera úteis os dias de segunda a sexta-feira. Determinados setores e contratos podem adotar uma definição diferente.

Os feriados estaduais e municipais entram no cálculo?

Não. São considerados apenas feriados nacionais. Datas estaduais, municipais e pontos facultativos devem ser conferidos de acordo com a localidade e o órgão responsável.

Como transformar dias em meses?

Não existe conversão exata por divisão, pois os meses têm durações diferentes. A ferramenta calcula anos, meses e dias avançando pelo calendário entre as duas datas selecionadas.

A calculadora pode ser usada para prazos legais?

Ela pode auxiliar na conferência, mas não determina a regra jurídica. Prazos legais podem excluir o dia do começo, incluir o do vencimento, suspender a contagem ou observar calendários oficiais específicos.

(function(){
const DAY=86400000;
const form=document.getElementById(‘date-counter-form’);
const startInput=document.getElementById(‘start-date’);
const endInput=document.getElementById(‘end-date’);
const result=document.getElementById(‘date-counter-result’);
const includeStart=document.getElementById(‘include-start’);
const includeEnd=document.getElementById(‘include-end’);
const excludeHolidays=document.getElementById(‘exclude-holidays’);
function parseDate(value){const p=value.split(‘-‘).map(Number);return new Date(Date.UTC(p[0],p[1]-1,p[2]));}
function iso(date){return date.toISOString().slice(0,10);}
function br(date){return new Intl.DateTimeFormat(‘pt-BR’,{timeZone:’UTC’}).format(date);}
function holidaySet(firstYear,lastYear){
const set=new Set();
for(let y=firstYear;yset.add(y+’-‘+d));
if(y>=2024)set.add(y+’-11-20′);
}
return set;
}
function addMonthsClamped(date,months){
const y=date.getUTCFullYear();const m=date.getUTCMonth();const d=date.getUTCDate();
const first=new Date(Date.UTC(y,m+months,1));
const last=new Date(Date.UTC(first.getUTCFullYear(),first.getUTCMonth()+1,0)).getUTCDate();
return new Date(Date.UTC(first.getUTCFullYear(),first.getUTCMonth(),Math.min(d,last)));
}
function calendarDifference(a,b){
let cursor=new Date(a);let years=b.getUTCFullYear()-a.getUTCFullYear();
let candidate=addMonthsClamped(cursor,years*12);
if(candidate>b){years–;candidate=addMonthsClamped(cursor,years*12);}
cursor=candidate;
let months=(b.getUTCFullYear()-cursor.getUTCFullYear())*12+b.getUTCMonth()-cursor.getUTCMonth();
candidate=addMonthsClamped(cursor,months);
if(candidate>b){months–;candidate=addMonthsClamped(cursor,months);}
cursor=candidate;
const days=Math.round((b-cursor)/DAY);
return {years,months,days};
}
function calculate(){
if(!startInput.value||!endInput.value){result.innerHTML=’

Informe as duas datas para calcular.

‘;return;}
let originalStart=parseDate(startInput.value);let originalEnd=parseDate(endInput.value);
let reversed=originalStart>originalEnd;
let a=reversed?originalEnd:originalStart;let b=reversed?originalStart:originalEnd;
const span=Math.round((b-a)/DAY);
const firstIndex=includeStart.checked?0:1;
const lastIndex=span-(includeEnd.checked?0:1);
const total=Math.max(0,lastIndex-firstIndex+1);
const holidays=holidaySet(a.getUTCFullYear(),b.getUTCFullYear());
let useful=0,weekend=0,removedHolidays=0;
for(let i=firstIndex;i<=lastIndex;i++){
if(ispan)continue;
const date=new Date(a.getTime()+i*DAY);const weekday=date.getUTCDay();
if(weekday===0||weekday===6){weekend++;continue;}
if(excludeHolidays.checked&&holidays.has(iso(date))){removedHolidays++;continue;}
useful++;
}
const weeks=Math.floor(total/7);const remaining=total%7;const cal=calendarDifference(a,b);
const note=reversed?’

As datas foram organizadas em ordem cronológica para calcular o valor absoluto do período.

‘:”;
result.innerHTML=’

Resultado de ‘+br(a)+’ a ‘+br(b)+’

‘+note+’

‘+total+’
dias corridos

‘+useful+’
dias úteis

‘+weekend+’
dias de fim de semana

‘+removedHolidays+’
feriados descontados

Em semanas: ‘+weeks+’ semana(s) completa(s) e ‘+remaining+’ dia(s).

Diferença de calendário: ‘+cal.years+’ ano(s), ‘+cal.months+’ mês(es) e ‘+cal.days+’ dia(s).

‘;
}
form.addEventListener(‘submit’,function(e){e.preventDefault();calculate();});
document.getElementById(‘swap-dates’).addEventListener(‘click’,function(){const value=startInput.value;startInput.value=endInput.value;endInput.value=value;calculate();});
[startInput,endInput,includeStart,includeEnd,excludeHolidays].forEach(el=>el.addEventListener(‘change’,calculate));
const now=new Date();const today=new Date(Date.UTC(now.getFullYear(),now.getMonth(),now.getDate()));
const future=new Date(today.getTime()+30*DAY);
startInput.value=iso(today);endInput.value=iso(future);calculate();
})();