O cálculo de datas é o processo de encontrar a diferença entre duas datas do calendário ou de adicionar/subtrair uma duração a partir de uma data específica. Uma calculadora de datas online permite determinar o número exato de dias, semanas, meses e anos entre quaisquer duas datas sem precisar contar manualmente. Ela é útil no planejamento de projetos, em contratos jurídicos, na contabilidade financeira e no desenvolvimento de software.
A complexidade do cálculo de datas vem da estrutura irregular do calendário gregoriano. Os meses têm 28, 29, 30 ou 31 dias. Os anos têm 365 ou 366 dias, dependendo das regras de anos bissextos. Uma simples subtração de números de dias produz resultados incorretos quando as datas abrangem meses ou anos diferentes. Os algoritmos corretos de diferença de datas precisam levar em conta essas irregularidades, percorrendo cada unidade do calendário separadamente.
A aritmética de datas aparece em muitos contextos de programação: calcular a expiração de tokens, agendar eventos recorrentes, calcular prazos de SLA ou medir o tempo decorrido entre entradas de log. Em fluxos de trabalho de DevOps, ela surge como janelas de validade de certificados, durações de congelamento de implantações e períodos de plantão. Embora a maioria das linguagens ofereça bibliotecas de datas, uma calculadora no navegador fornece respostas imediatas para verificações rápidas, sem escrever código, instalar dependências ou abrir um REPL.
Por Que Usar Esta Calculadora de Datas?
Obtenha instantaneamente o detalhamento do tempo entre duas datas, com resultados em várias unidades ao mesmo tempo. Sem fórmulas, sem código, sem cadastro.
⚡
Resultados Imediatos
Escolha duas datas e veja a diferença em anos, meses, semanas, dias, horas e minutos. Os resultados são atualizados conforme você altera qualquer uma das datas.
🔒
Privacidade em Primeiro Lugar
Todos os cálculos são feitos no seu navegador. Nenhuma data é enviada a qualquer servidor, e nada é armazenado ou registrado.
📅
Múltiplas Unidades de Saída
Veja o resultado em todas as unidades simultaneamente: total de dias, semanas, meses e um detalhamento completo em anos, meses e dias. Não é necessário converter entre unidades.
🔢
Sem Cadastro Necessário
Use a ferramenta imediatamente. Não há login, assinatura nem limite de uso. Adicione aos favoritos e use sempre que precisar de uma verificação rápida de datas.
Casos de Uso da Calculadora de Datas
Desenvolvimento Frontend
Verifique quantos dias faltam para o lançamento de uma funcionalidade, valide a lógica de contagem regressiva ou teste componentes de seleção de datas em relação a intervalos esperados.
Engenharia Backend
Valide janelas de expiração de tokens, calcule durações de TTL de cache ou verifique se os intervalos de tarefas agendadas produzem as datas corretas para a próxima execução.
DevOps e SRE
Meça o intervalo entre timestamps de incidentes em post-mortems, calcule os prazos de vencimento de certificados ou determine a duração do congelamento de implantações em períodos de feriado.
QA e Testes
Gere dados de teste com deslocamentos de datas específicos, verifique a lógica de verificação de idade calculando idades exatas a partir de datas de nascimento, ou confirme que as condições de limite de datas são tratadas corretamente.
Gerenciamento de Projetos
Calcule a duração de sprints, meça o número de dias úteis entre marcos ou estime prazos de entrega contando os dias do calendário a partir de uma data de início.
Estudantes e Aprendizado
Conte os dias até uma prova, calcule a duração do semestre ou verifique respostas de exercícios de aritmética de datas em disciplinas de ciência da computação.
Referência de Unidades de Duração de Datas
Os cálculos de diferença de datas envolvem unidades de comprimento variável. Meses e anos não têm duração fixa, razão pela qual uma simples divisão do total de dias pode produzir resultados imprecisos. A tabela abaixo lista cada unidade e seu intervalo:
Unidade
Equivalente
Observação
1 year
365 or 366 days
Depends on leap year
1 month
28–31 days
Varies by month
1 week
7 days
Fixed
1 day
24 hours
Fixed (ignoring DST transitions)
1 hour
3,600 seconds
Fixed
1 minute
60 seconds
Fixed
Formatos de Data Comuns
Ao trabalhar com datas de forma programática, o formato determina como uma string de data é interpretada. Usar o formato errado causa erros silenciosos. ISO 8601 é a escolha mais segura para troca de dados porque é inequívoco e compatível com fusos horários. A tabela abaixo lista os formatos mais comumente encontrados:
Formato
Exemplo
Usado em
ISO 8601
2026-04-10T14:30:00Z
APIs, databases, logs
RFC 2822
Fri, 10 Apr 2026 14:30:00 +0000
Email headers, HTTP
Unix timestamp
1775831400
Epoch-based systems
US format
04/10/2026
User-facing (US locale)
European format
10.04.2026
User-facing (EU locale)
Short ISO
2026-04-10
HTML date inputs, SQL DATE
Exemplos de Código: Calcular Dias Entre Datas
Exemplos funcionais para calcular a diferença entre duas datas em JavaScript, Python, Go e na linha de comando. Cada trecho mostra tanto o cálculo do total de dias quanto o detalhamento por unidades do calendário, quando a linguagem suporta.
JavaScript
// Calculate days between two dates
const start = new Date('2026-01-15')
const end = new Date('2026-04-10')
const diffMs = end.getTime() - start.getTime()
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24))
console.log(diffDays) // → 85
// Get year, month, day breakdown
function dateDiff(a, b) {
let years = b.getFullYear() - a.getFullYear()
let months = b.getMonth() - a.getMonth()
let days = b.getDate() - a.getDate()
if (days < 0) {
months--
days += new Date(b.getFullYear(), b.getMonth(), 0).getDate()
}
if (months < 0) { years--; months += 12 }
return { years, months, days }
}
console.log(dateDiff(start, end)) // → { years: 0, months: 2, days: 26 }
Python
from datetime import date, timedelta
from dateutil.relativedelta import relativedelta
start = date(2026, 1, 15)
end = date(2026, 4, 10)
# Total days
diff = (end - start).days
print(diff) # → 85
# Year/month/day breakdown (requires python-dateutil)
rd = relativedelta(end, start)
print(f"{rd.years}y {rd.months}m {rd.days}d") # → 0y 2m 26d
# Add 90 days to a date
future = start + timedelta(days=90)
print(future) # → 2026-04-15
# Days between two dates (GNU coreutils)
echo $(( ($(date -d "2026-04-10" +%s) - $(date -d "2026-01-15" +%s)) / 86400 ))
# → 85
# Add 90 days to a date (GNU date)
date -d "2026-01-15 + 90 days" +%Y-%m-%d
# → 2026-04-15
# macOS (BSD date) — add 90 days
date -j -v+90d -f "%Y-%m-%d" "2026-01-15" +%Y-%m-%d
# → 2026-04-15
Perguntas Frequentes
Como calculo o número de dias entre duas datas?
Subtraia a data anterior da data posterior para obter a diferença em milissegundos (ou no tipo de duração nativo da sua linguagem), depois divida pelo número de milissegundos em um dia (86.400.000). Isso fornece o total de dias decorridos. Para um detalhamento em anos, meses e dias restantes, é necessário percorrer cada unidade individualmente, pois os meses têm comprimentos variáveis.
O cálculo da diferença de datas inclui a data inicial ou a data final?
Por convenção, a diferença de datas conta os dias entre as duas datas, excluindo a data inicial ou a final. Se você escolher 1 de janeiro e 2 de janeiro, o resultado é 1 dia. Se o seu caso de uso exige contagem inclusiva (ambos os extremos incluídos), adicione 1 ao resultado. Esta ferramenta segue a convenção de exclusão do final, usada pela maioria das linguagens de programação.
Como os anos bissextos são tratados nos cálculos de datas?
Um ano bissexto adiciona 29 de fevereiro, tornando o ano 366 dias em vez de 365. A regra gregoriana de ano bissexto é: divisível por 4, exceto séculos, que também devem ser divisíveis por 400. Assim, 2024 e 2028 são anos bissextos, 1900 não foi, e 2000 foi. Algoritmos de diferença de datas que trabalham com unidades do calendário (ano/mês/dia) lidam com isso automaticamente. Algoritmos que convertem para o total de dias precisam contabilizar o dia extra quando o intervalo inclui 29 de fevereiro.
Qual é a diferença entre dias corridos e dias úteis?
Dias corridos contam todos os dias, incluindo fins de semana e feriados. Dias úteis excluem sábados, domingos e feriados. Esta ferramenta calcula dias corridos. Para converter em dias úteis aproximados, multiplique o total de dias corridos por 5/7. Para contagens exatas de dias úteis, você também precisará de um calendário de feriados para a jurisdição relevante.
Posso calcular uma data futura adicionando dias a uma data inicial?
Sim. Em JavaScript, crie um objeto Date e chame setDate(getDate() + n). Em Python, adicione um timedelta(days=n) a um objeto de data. Em Go, use time.AddDate(0, 0, n). Esta ferramenta foca na diferença entre duas datas conhecidas, mas você pode usá-la para verificar sua aritmética: insira a data inicial e a data de resultado esperada e confirme que o total de dias corresponde ao deslocamento que você adicionou.
Por que ferramentas diferentes dão resultados distintos para meses entre datas?
O cálculo de meses é ambíguo porque os meses têm comprimentos diferentes. Considere 31 de janeiro a 28 de fevereiro: isso é 1 mês ou 0 meses e 28 dias? Bibliotecas diferentes fazem escolhas diferentes. A convenção mais comum (usada pelo dateutil do Python, pelo Period do Java e por esta ferramenta) conta um mês completo como atingir o mesmo dia do mês ou o último dia válido do mês mais curto. Sempre verifique qual convenção sua biblioteca usa ao comparar resultados.
O cálculo de datas é afetado por fusos horários?
Quando você seleciona datas sem componente de hora (apenas ano-mês-dia), o cálculo é independente de fuso horário, pois opera sobre datas do calendário, não sobre instantes no tempo. Se precisar calcular a diferença entre dois momentos específicos (incluindo hora e fuso horário), trabalhe com timestamps ISO 8601 completos e converta ambos para UTC antes de subtrair. Esta ferramenta opera apenas com datas do calendário.