Saltar para o conteúdo

Como contar dias entre duas datas: inclusivo ou exclusivo

Porque os dias entre duas datas podem ter mais de uma resposta certa e um método fiável para inclusão, anos bissextos, dias úteis, prazos e mudanças de hora.

· 12 min de leitura · Gabriel

Calendário de papel com duas datas assinaladas e marcadores de contagem entre elas
Índice

«Quantos dias há entre 10 e 12 de março?» A resposta pode ser dois, três ou um — e as três podem estar certas. A subtração é simples. A verdadeira questão é saber se a data inicial, a data final, ambas ou nenhuma entram na contagem.

Este guia apresenta um método repetível e também aborda anos bissextos, fins de mês, dias úteis, prazos, fusos horários e mudanças de hora. O objetivo não é apenas obter um número, mas o número que corresponde à pergunta real.

A resposta curta

Para duas datas sem hora, calcule primeiro a diferença normal: diferença = data final − data inicial. Depois aplique a regra dos limites:

  • Tempo decorrido ou início excluído: use a diferença sem alterações.
  • Contagem inclusiva: some 1 quando a data inicial e a final contam.
  • Apenas dias interiores: subtraia 1 quando nenhum limite conta, sem descer abaixo de zero.

De 2026-03-10 a 2026-03-12, a diferença normal é 2 dias. Contando as duas datas, são 3; contando apenas as datas estritamente intermédias, é 1.

Quatro formas válidas de contar o mesmo intervalo

RegraDatas contadasResultadoUso comum
Final menos início10→11, 11→122 diasDuração do intervalo; noites
Ambas as datas incluídas10, 11, 123 datasPresença, viagens, campanhas
Ambas as datas excluídasSó o dia 111 dia interiorAlgumas regras processuais
Semiaberto [início, fim)10, 112 datasSoftware, reservas, relatórios

Um intervalo semiaberto inclui o início e exclui o fim. Evita sobreposições: uma reserva que termina no dia 12 e a seguinte que começa nesse dia não ocupam ambas o mesmo limite. Além disso, intervalos adjacentes somam-se sem ajustes.

Mesmo «inclusivo» é ambíguo se não indicar qual limite. Escreva explicitamente «incluir ambas as datas», «excluir a data inicial» ou «contar apenas os dias completos entre elas».

Diferença entre datas e tempo decorrido são perguntas diferentes

Uma data é um rótulo do calendário, não necessariamente um bloco de 24 horas. Em Europe/Madrid, da meia-noite local de 28 à de 30 de março de 2026 há dois dias de calendário, mas apenas 47 horas decorridas porque o relógio avança. De 24 a 26 de outubro há dois dias de calendário e 49 horas quando o relógio atrasa.

Se a pergunta é quantas datas do calendário existem, trabalhe com datas sem hora. Se é quanto tempo decorreu, compare instantes precisos e devolva horas, minutos ou segundos. Dividir a diferença entre timestamps por 86 400 pode dar um número errado de dias durante a mudança de hora.

Os modelos modernos separam os conceitos. A documentação de Temporal PlainDate trata a data civil separadamente do instante exato; o RFC 5545 explica por que durações em dias e semanas precisam de contexto de calendário nas mudanças de hora.

Um método fiável para datas sem hora

  1. Normalize a entrada. Confirme o calendário e use um formato inequívoco como AAAA-MM-DD.
  2. Mantenha datas como datas. Não acrescente silenciosamente meia-noite ou um fuso horário.
  3. Associe cada data a um número de dia. Uma biblioteca pode chamar-lhe ordinal ou dia desde a época.
  4. Subtraia. O número posterior menos o anterior dá a diferença com sinal.
  5. Aplique a regra dos limites. Inclua ou retire os extremos apenas depois da diferença base.

O sinal preserva a direção: de 10 a 12 de março dá +2; de 12 a 10 dá −2. Use o valor absoluto apenas quando a direção não importar. A nossa calculadora de diferença entre datas mostra anos, meses, semanas e dias sem transformar datas em timestamps.

Deixe os anos bissextos a cargo do calendário

InícioFimDiferença normalAmbas incluídas
2024-02-282024-03-012 dias3 datas
2025-02-282025-03-011 dia2 datas
2026-01-012027-01-01365 dias366 datas

No calendário gregoriano, anos divisíveis por 4 são bissextos, exceto anos seculares que não sejam também divisíveis por 400. Boas bibliotecas já aplicam esta regra. Presumir sempre 365 dias por ano é menos fiável.

Meses e anos não têm um número fixo de dias

«Um mês depois de 31 de janeiro» exige uma política: limitar a 28 ou 29 de fevereiro, avançar para março ou rejeitar a data? Um ano depois de 29 de fevereiro também precisa de regra num ano não bissexto.

  • 30 dias decorridos é uma duração fixa.
  • Um mês de calendário mantém uma relação no calendário e exige política de fim de mês.
  • A mesma data no mês seguinte pode não existir e precisa de alternativa explícita.

Quando um contrato ou interface diz «mensal», deve documentar o que acontece no fim do mês. Não substitua silenciosamente um mês de calendário por 30 dias.

Dias úteis exigem um calendário de trabalho

Um dia de semana não é automaticamente um dia útil. É preciso definir os dias normalmente trabalhados, país ou região, feriados públicos e internos com dias de substituição, tratamento do dia inicial e o que acontece se o resultado cair num dia não trabalhado.

Para uma contagem comum de segunda a sexta, use a nossa calculadora de dias úteis. Para salários, entregas contratuais, processos judiciais ou prazos regulados, aplicam-se o calendário e as regras que governam o caso real.

As regras de prazo podem substituir a contagem comum

Os prazos legais mostram por que não existe uma definição inclusiva universal. Segundo as regras gerais da UE, o dia do acontecimento inicial é normalmente excluído; fins de semana e feriados contam, salvo quando o período é expresso em dias úteis, e o fim pode ser transferido quando o último dia é feriado ou fim de semana. Consulte o Regulamento (CEE, Euratom) n.º 1182/71.

A Rule 6 das atuais Federal Rules of Civil Procedure dos EUA também exclui em geral o dia inicial, conta fins de semana e feriados intermédios e transfere o fim quando necessário. Em Inglaterra e no País de Gales, a Civil Procedure Rule 2.8 define «clear days» excluindo o dia inicial e o do evento, com regras adicionais para períodos curtos e tribunais fechados.

A nossa calculadora de prazos ajuda a explorar uma data, mas não decide qual regra jurídica se aplica.

Cinco perguntas antes de contar

  1. As entradas são datas ou instantes precisos?
  2. Quais limites contam? Registe separadamente a inclusão do início e do fim.
  3. Que calendário e fuso horário se aplicam?
  4. Os dias não trabalhados têm regras especiais?
  5. O que acontece nos limites difíceis? Teste o mesmo dia, ordem inversa, dia bissexto, fim de mês, fim de ano e mudança de hora.

Um conjunto compacto de casos-limite

CasoResultado normal esperadoErro detetado
2026-03-10 → 2026-03-100 dias; inclusivo 1Tratamento do mesmo dia
2026-03-12 → 2026-03-10−2 diasPerda da direção
2024-02-28 → 2024-03-012 diasDia bissexto omitido
2025-02-28 → 2025-03-011 diaRegra bissexta aplicada todos os anos
Madrid, 2026-03-28 → 2026-03-302 dias de calendário; 47 horasDias confundidos com blocos de 24 horas
2026-01-31 + 1 mêsDepende da política definidaMês tratado como 30 dias

Em software, os testes devem indicar a convenção. «Dias entre datas» não é uma especificação; «excluir início e incluir fim em Europe/Madrid» é muito mais claro. A documentação oficial de datetime do Python distingue, por exemplo, a subtração de datas da aritmética de data e hora e das regras de fuso.

Que calculadora deve usar?

A ideia essencial

Não existe uma única resposta correta antes de definir os limites e o tipo de tempo. Comece pela diferença normal e indique depois os extremos, o sinal, o calendário, o fuso e eventuais regras laborais ou jurídicas. Uma frase adicional na especificação evita a maioria dos erros de um dia.

Fontes e leitura adicional

Verifique a regra de contagem

1. De 10 a 12 de março, quantas datas são contadas quando ambos os limites são incluídos?
2. Duas meias-noites locais estão separadas por dois dias de calendário numa mudança de hora. Passaram necessariamente 48 horas?
3. O que deve ser definido antes de calcular um prazo legal?

← Voltar a todos os artigos