ForHosting KIT · Ferramentas para dev

Diferença entre datas em anos, meses e dias

Esta calculadora divide o intervalo entre duas datas ISO explícitas em anos completos, meses completos e dias restantes.

● BetaGrátis · no seu navegador
Use pelo WebAPIE-mailTelegramApp em breve

Ela também informa a direção e o total de dias com sinal. Como você fornece ambas as datas, o resultado nunca depende da hora atual. A validação rígida AAAA-MM-DD, as regras do calendário gregoriano proléptico e a aritmética sem fuso horário tornam a mesma solicitação reproduzível no navegador, na API ou em testes automatizados.

Como o detalhamento em anos, meses e dias é calculado

A calculadora trata o intervalo como uma duração de calendário, não como uma conversão decimal de dias. A partir da data anterior, encontra a maior quantidade de meses completos que pode ser somada sem ultrapassar a posterior. Depois separa esse total em anos e meses e conta os dias exatos desde o aniversário intermediário. Assim, trinta dias nem sempre formam um mês: o próximo aniversário mensal precisa ter chegado. O método preserva o sentido comum de anos e meses apesar de seus comprimentos diferentes. total_days fornece separadamente a diferença ordinal com sinal. Use esse campo quando precisar de um único número e o detalhamento para uma duração legível. Ao inverter as datas, os componentes continuam não negativos; direction e total_days preservam a ordem informada.

Fins de mês, anos bissextos, datas invertidas e UTC

Nem todo dia existe em todos os meses, portanto há regras explícitas. Quando um passo mensal chega a um mês mais curto, o dia é limitado ao último válido: 31 de janeiro avança para 28 ou 29 de fevereiro. Em seguida, o algoritmo verifica se houve ultrapassagem. Anos bissextos seguem a regra gregoriana: divisíveis por 4, exceto séculos que não sejam divisíveis por 400. Se a segunda data for anterior, o detalhamento mantém a magnitude, direction indica retrocesso e total_days fica negativo. Datas iguais retornam zeros. Todo o cálculo usa campos inteiros, sem Date do JavaScript, fuso local, horário de verão, rede, relógio ou interpretação dependente de localidade.

Como informar as datas e interpretar a resposta

Forneça from e to como textos AAAA-MM-DD, incluindo zeros à esquerda. São aceitos anos de 0001 a 9999. Datas impossíveis, campos ausentes, timestamps, formatos regionais e frases naturais são rejeitados em vez de adivinhados. years, months e days descrevem juntos uma duração sequencial desde a data cronologicamente anterior. Não converta meses isoladamente em uma quantidade fixa de dias. total_days é adequado para ordenação, prazos e armazenamento escalar; direction indica avanço, retrocesso ou igualdade. Entre os usos estão tempo de conta, duração de projetos, comparação histórica e regras contratuais reproduzíveis. Uma solicitação à API custa US$ 0,002. Para calcular idade em um dia específico, informe e armazene essa referência; a ferramenta nunca substitui a data por hoje.

Descrever a duração de um projeto

Transforme dois marcos registrados em uma duração legível, mantendo também a contagem exata e assinada de dias.

Calcular tempo de vínculo em data fixa

Meça associação, emprego ou existência de conta contra uma referência armazenada, não contra o dia atual variável.

Criar testes de datas reproduzíveis

Valide fins de mês e anos bissextos com resultados independentes do fuso horário e do momento da execução.

A calculadora usa a data de hoje?

Não. As duas datas ISO são obrigatórias e o cálculo nunca consulta o relógio atual.

Datas em ordem inversa são permitidas?

Sim. O detalhamento permanece não negativo, direction indica retrocesso e total_days fica negativo.

Como são tratados os fins de mês?

O passo mensal é limitado ao último dia válido de um mês mais curto e depois verificado para evitar ultrapassagem.

Qual formato de data é aceito?

Use textos rígidos AAAA-MM-DD com datas gregorianas válidas e anos entre 0001 e 9999.

Fusos horários ou horário de verão alteram o resultado?

Não. A implementação usa aritmética inteira de datas, sem Date do JavaScript, fuso local ou regras de horário de verão.

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.

POSThttps://api.kit.forhosting.com/date/diff-breakdown-ymd

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/date/diff-breakdown-ymd \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"from":"2019-01-31","to":"2024-03-02"}'
{
  "from": "2019-01-31",
  "to": "2024-03-02"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "date.diff_breakdown_ymd",
  "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.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Ver a documentação completa do KIT →