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
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
- Informe a data inicial: ela pode estar no passado, ser a data de hoje ou representar o começo de um prazo futuro.
- Selecione a data final: escolha o encerramento do período que deseja medir.
- Configure os extremos: marque se o primeiro dia, o último dia ou ambos devem participar da contagem.
- Defina a regra dos feriados: mantenha a opção ativada para descontar feriados nacionais que ocorram de segunda a sexta-feira.
- 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 contagem | O que entra | Uso comum |
|---|---|---|
| Dias corridos | Todos os dias do período | Contagens regressivas, duração total e eventos |
| Dias úteis sem feriados | Segunda a sexta-feira | Estimativas simples de trabalho e atendimento |
| Dias úteis com feriados | Segunda a sexta, menos feriados nacionais | Planejamento 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();
})();