Data a data
De 15 de janeiro de 2020 a 25 de julho de 2026 são 6 anos, 6 meses e 10 dias. Digite duas datas e veja os anos completos, os meses e os dias que sobram, do jeito que um contrato descreve um prazo. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- De
- 2020-01-15
- To
- 2026-07-25
- Anos
- 6
- Meses
- 6
- Dias
- 10
- Total de dias
- 2.383
Uma calculadora de data a data mostra quanto tempo de calendário civil existe entre dois dias explícitos: anos concluídos, meses restantes e dias restantes. Quem pesquisa data a data precisa desse detalhamento misto para um contrato de aluguel, um projeto, uma janela de visto ou um marco pessoal, não uma idade em anos inteiros nem um total bruto de meia-noites. Esta ferramenta nunca inventa o hoje com o relógio do hospedeiro.
O que uma diferença civil de data a data realmente conta
Data a data é um intervalo civil, não um rótulo de idade nem uma duração de relógio. O motor pega a mais cedo das duas datas e avança em meses inteiros de calendário, limitando o dia do mês quando o mês de chegada é mais curto, até que mais um mês ultrapassaria a data posterior. A folga restante é então contada em dias civis inteiros.
Os anos são o total de meses inteiros dividido por doze; os meses, esse total módulo doze; os dias fecham o triplo. Trinta e um de janeiro mais um mês vira o último dia de fevereiro, seja o vinte e oito ou o vinte e nove, de modo que um intervalo que começa num dia de mês longo nunca inventa um primeiro de março por transbordo.
O mesmo par de datas civis produz sempre os mesmos anos, meses e dias porque o motor nunca consulta um relógio do hospedeiro, um fuso horário nem tabelas de horário de verão. Datas iguais devolvem zero em cada componente e marcam direction como zero. Se o fim chega antes do início, o triplo de anos-meses-dias continua sendo o comprimento civil absoluto e direction é backward, então um par invertido não falha e não inventa uma idade negativa.
A string formatted une os três componentes numa linha legível, como seis anos, seis meses, dez dias, para rótulos e recibos. Use uma ferramenta vizinha de idade em anos inteiros quando a busca for quantos anos alguém tem, e um auxiliar só de meses quando o produto nunca mencionar anos restantes; use esta página quando a consulta for data a data e a resposta tiver de ser o detalhamento civil misto.
Onde uma calculadora de data a data justifica o seu lugar
Balcões de aluguel e portais imobiliários precisam de anos, meses e dias restantes entre a data de entrada e a de saída, não uma idade de um único inteiro nem uma contagem de dias úteis que pula fins de semana.
Gestores de projeto imprimem o mesmo triplo num memorando de abertura para que um programa iniciado em meados de janeiro e encerrado no fim de julho seja descrito como seis anos, seis meses e dez dias quando esses forem os números civis, em vez de uma média flutuante de trinta ponto quatro dias que desvia ao longo de fevereiro. Prontuários de visto e residência guardam o intervalo misto contra dois carimbos explícitos para que um revisor possa repetir o mesmo par meses depois e obter o mesmo detalhamento.
Painéis pessoais usam a calculadora gratuita de data a data no navegador para marcos de um relacionamento, períodos de estudo e quanto uma assinatura de fato durou, sem instalar uma biblioteca de datas nem enviar um banco de fusos a cada cliente. Mantenha expectativas honestas: esta capacidade mede tempo civil gregoriano entre duas datas explícitas; não pula fins de semana como duração comercial, não carrega calendários de feriados, não converte meses lunares, não define um extremo ausente como hoje no servidor nem reformula o intervalo como idade.
Combine-a com uma ferramenta de idade em anos inteiros quando o formulário perguntar só quantos anos alguém tem, e com um auxiliar de contagem regressiva quando o produto falar de dias que faltam até um evento. Como a implementação é parse pura tier A, cada chamada bem-sucedida permanece barata, determinística e sem tokens de modelo ou rede de saída, exatamente o que suítes de regressão precisam ao fixar pares de fim de mês e de dia bissexto ao longo de décadas de datas de início e de fim.
Casos de uso
Prazos de aluguel e locação
Informe a data de entrada e a de saída para mostrar anos, meses restantes e dias restantes de um dossiê de locação sem deriva do relógio do hospedeiro.
Duração de projeto e programa
Digite a data de abertura e a de encerramento para imprimir um intervalo civil de anos, meses e dias num memorando de status ou num relatório de financiamento.
Marcos pessoais entre dois dias
Meça quanto durou um relacionamento, um curso ou uma assinatura entre duas datas de calendário explícitas.
Perguntas frequentes
Como esta calculadora de data a data conta anos, meses e dias?
O motor percorre meses inteiros de calendário a partir da data mais cedo, limita dias de mês longo ao último dia de um mês mais curto e depois informa os dias civis restantes.
E se a data final for anterior à data inicial?
A solicitação ainda é bem-sucedida. Years, months e days são o intervalo civil absoluto; direction fica em backward para que um formulário rotule o par como invertido sem inventar uma idade negativa.
Quanto custa um cálculo de data a data?
A ferramenta no navegador é gratuita no seu dispositivo.
O que acontece se a data inicial for o último dia de um mês longo?
Ao somar um mês, a conta cai no último dia do mês mais curto, sem pular para o seguinte. Do último dia de janeiro, um mês depois é o último dia de fevereiro.
Também consigo ver o total de dias?
Sim. Ao lado dos anos, meses e dias aparece a contagem simples de dias entre as duas datas: de 15 de janeiro de 2020 a 25 de julho de 2026 são 2383 dias.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/life/date-to-date \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"from":"2020-01-15","to":"2026-07-25"}'const res = await fetch("https://api.kit.forhosting.com/life/date-to-date", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"from": "2020-01-15",
"to": "2026-07-25"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/date-to-date",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"from": "2020-01-15",
"to": "2026-07-25"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/date-to-date", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"from":"2020-01-15","to":"2026-07-25"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"from":"2020-01-15","to":"2026-07-25"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/date-to-date", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"from": "2020-01-15",
"to": "2026-07-25"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.date_to_date",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
year_min | 1 |
year_max | 9999 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Você envia os dois extremos como valores civis YYYY-MM-DD; o motor valida cada dia sob regras gregorianas prolépticas de bissexto e o mesmo par devolve sempre o mesmo triplo no navegador, na integração contínua e na API. Dias de calendário impossíveis falham com invalid_input e não são cobrados. Chamadas API bem-sucedidas usam o preço-base publicado US$ 0,002.
O que uma diferença civil de data a data realmente conta
O campo total_days é a diferença civil exclusiva entre os dois ordinais, útil quando um relatório também precisa de um comprimento sem ordem em dias.
Contrato de entrada, validação de calendário e forma da resposta
Cada valor deve ser um dia civil no formato YYYY-MM-DD, por exemplo dois mil e vinte hífen zero um hífen quinze para o início e dois mil e vinte e seis hífen zero sete hífen vinte e cinco para o fim. Você pode prefixar um datetime ISO-8601 completo; se houver hora, só a parte de calendário é usada, porque uma medida de data a data é um intervalo de dias civis, não uma duração de relógio com fusos. Os anos vão de um a nove mil novecentos e noventa e nove, os meses de um a doze, e o dia deve existir naquele mês sob regras de bissexto gregorianas, incluindo 29 de fevereiro só em anos bissextos. Ambos os extremos são obrigatórios de propósito: uma calculadora de data a data que substitui em silêncio o relógio do hospedeiro produz respostas diferentes na integração contínua, num notebook que cruza um meridiano e num worker em Coordinated Universal Time, o que quebra auditorias e exportações reproduzíveis. Faça POST de um corpo JSON compacto com dois campos de string obrigatórios: from e to. Aliases opcionais start, begin, start_date e date_from mapeiam para from; end, until, end_date e date_to mapeiam para to, para que construtores de formulários e SDKs mantenham nomes familiares. Pares impossíveis como dois mil e vinte e três hífen zero dois hífen vinte e nove são rejeitados com invalid_input em vez de serem forçados para março. Campos ausentes, strings vazias e valores que não são string falham com invalid_input nomeando o campo e não são cobrados.
Onde uma calculadora de data a data justifica o seu lugar
Chame a API pré-paga quando pipelines de contrato, exportações de locação ou registros de programa precisarem de um contrato estável com saldo KIT a US$ 0,002 por item bem-sucedido; falhas de validação não consomem saldo após a rejeição do motor.
Perguntas técnicas
A calculadora de data a data usa automaticamente a data de hoje?
Não. Tanto from quanto to são obrigatórios. O motor não lê o relógio do sistema, então os resultados coincidem em CI, navegadores e workers de API.
Quais entradas são rejeitadas como datas inválidas?
Qualquer valor que não seja um dia gregoriano real falha com invalid_input: campo ausente, valor que não é string, token malformado, mês fora de um a doze, ou um dia que não existe naquele mês, inclusive 29 de fevereiro em ano comum.