Número de dias entre datas
De 1 a 11 de janeiro de 2024 há 10 noites entre as datas, ou 11 dias se o primeiro e o último dia contarem. Escolha a leitura que combina com sua reserva, sua licença ou seu anúncio. 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
- Início
- 2024-01-01
- End
- 2024-01-11
- Extremos
- Exclude
- Dias
- 10
- Dias com sinal
- 10
- Ano de início
- 2.024
Esta calculadora do número de dias responde a uma pergunta de planejamento doméstico que as planilhas ainda erram: dadas duas datas de calendário, qual é a contagem de dias e os dois extremos contam? Você envia dois dias ISO na forma ano-mês-dia e um modo de extremos exclude ou include. exclude devolve o intervalo aberto — quantas meias-noites ficam estritamente entre as datas, a cifra usada para noites de hotel ou dias entre acontecimentos. include devolve essa distância mais um, de modo que o primeiro dia e o último entram os dois, a cifra dos dias de licença, de cobertura ou de vigência de um anúncio.
O que include versus exclude muda no número de dias
As pessoas digitam «número de dias entre duas datas», «quantos dias dura a minha viagem» ou «calculadora do número de dias» quando querem um único inteiro, mas não concordam se o primeiro dia e o último entram na conta. Uma estadia de hotel de segunda a quinta são três noites se você exclui os dois extremos como um vão, e quatro dias de calendário se inclui o dia da chegada até o da partida.
Internações, contratos de aluguel, faltas escolares, contagens de permanência de visto e «dias em que esta oferta fica no ar» usam o mesmo desvio. Pares do mesmo dia, portanto, dão zero sob exclude e um sob include. Horários do dia, fusos horários e calendários de dias úteis ficam fora do escopo: a unidade é o dia civil de meia-noite a meia-noite.
Essa reprodutibilidade é a razão de este destino existir ao lado de, e não no lugar de, uma ferramenta de dias entre datas que nunca oferece o seletor include.
Onde uma contagem de dias com seletor de extremos aparece
Quem planeja viagens usa o modo exclude quando um site de reservas vende noites e precisa do inteiro que bate com a fatura, e passa a include quando um viajante pergunta «quantos dias vou ficar realmente fora», contando tanto a manhã da partida quanto a tarde da volta como dias de calendário da viagem.
Mesas de recursos humanos e de clínica usam include quando um formulário de licença ou um registro de internação cobre cada dia civil da primeira data até a última, e usam exclude quando a política se escreve como «dias depois do acontecimento» e não como «dias de cobertura». Locadores e vendedores de marketplace contam dias de anúncio inclusivos quando um calendário mostra um imóvel ocupado de sexta a domingo como três dias, e noites exclusivas quando a mesma estadia são duas noites de aluguel.
Docentes passam os dois modos para o alunado ver por que uma planilha que subtrai números seriais discorda em silêncio de uma frase que diz «incluindo as duas datas». Nada é armazenado depois de devolver a resposta. Combine este destino com uma contagem regressiva de dias até uma data quando a pergunta for os dias que faltam até um horizonte futuro, ou com uma ferramenta de contagem de fins de semana quando só sábados e domingos importarem.
Reserve esta página para a busca «número de dias» com uma resposta explícita de include ou exclude.
Casos de uso
Noites de hotel versus dias de calendário de uma estadia
Transforme check-in e check-out em noites (exclude) ou em dias de calendário da viagem (include) sem deriva de fuso do relógio do hospedeiro.
Janelas de licença, cobertura e internação
Conte cada dia civil da primeira data até a última quando um formulário cobre os dois extremos, ou o vão aberto quando a política diz «dias depois».
Checagens escolares e de integração do erro de um
Mostre por que «incluindo as duas datas» é um a mais que uma subtração serial, e fixe os dois inteiros em testes que não devem depender de Date.
Perguntas frequentes
Como o número de dias é calculado quando os extremos são excluídos ou incluídos?
As duas datas viram números de dia seriais gregorianos. exclude é a diferença absoluta. include é essa diferença mais um para os dois extremos contarem. Envie YYYY-MM-DD em start e end.
O que acontece se você enviar a mesma data duas vezes?
exclude devolve 0 — não há vão aberto. include devolve 1 — esse único dia civil é o intervalo fechado inteiro.
Por que você precisa escolher include ou exclude?
Noites de hotel, dias de licença e «quantos dias dura a viagem» discordam se as duas datas entram.
E se uma das datas não for um dia de calendário real?
Os comprimentos de mês são conferidos nos dois campos.
A ordem das datas muda o resultado?
Não. Trocar a data inicial pela final não altera o número de dias: a contagem é sempre a distância entre as duas datas, seja qual for a que vem primeiro.
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/number-days \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2024-01-01","end":"2024-01-11"}'const res = await fetch("https://api.kit.forhosting.com/life/number-days", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": "2024-01-01",
"end": "2024-01-11"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/number-days",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": "2024-01-01",
"end": "2024-01-11"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/number-days", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":"2024-01-01","end":"2024-01-11"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":"2024-01-01","end":"2024-01-11"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/number-days", 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
{
"start": "2024-01-01",
"end": "2024-01-11"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.number_days",
"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
Se qualquer entrada não for um dia gregoriano real, a solicitação falha com invalid_input e não é cobrada. Chamadas API bem-sucedidas custam US$ 0,002.
O que include versus exclude muda no número de dias
Esta página torna a escolha explícita com um campo endpoints: exclude devolve o intervalo aberto, que é a diferença absoluta de dois números de dia seriais gregorianos; include devolve essa diferença mais um para que os dois extremos fiquem dentro da contagem. Inverter o par nunca muda a cifra absoluta de dias; só signed_days inverte o sinal para que um fluxo conserve a direção cronológica. Como a implementação nunca constrói um Date de JavaScript, o mesmo par e o mesmo modo produzem sempre o mesmo inteiro num Worker, num navegador em Tóquio ou num harness de testes com TZ fixado em America/New_York.
Como as duas datas ISO e o modo de extremos são lidos
Os campos obrigatórios são start e end, cada um um dia de calendário real na forma YYYY-MM-DD. Quando omitido, o motor assume exclude, que coincide com a leitura habitual de noites entre datas ou de meias-noites no meio. Cada data deve ser um dia gregoriano real: ano de quatro dígitos, mês de dois dígitos, dia de dois dígitos, com vinte e nove de fevereiro permitido só em ano bissexto. Os anos se limitam ao intervalo inclusivo de um a nove mil novecentos e noventa e nove para que as cadeias ISO de quatro dígitos fiquem bem definidas. Checagens clássicas incluem dois mil e vinte e quatro hífen zero um hífen zero um até dois mil e vinte e quatro hífen zero um hífen um um sob exclude, que dá dez dias, e dois mil e vinte e quatro hífen zero dois hífen vinte e oito até dois mil e vinte e quatro hífen zero três hífen zero um sob include, que dá três dias atravessando um dia bissexto. Aceitam-se os aliases from, date1, begin e a para a primeira data; os aliases to, date2, finish e b para a segunda, para que um formulário, uma cadeia de consulta ou uma coluna de planilha reutilizem o contrato. O campo opcional endpoints é um enumerado fechado: exclude ou include. Aceitam-se os aliases mode, count e include_endpoints para o mesmo seletor. Campos ausentes, cadeias vazias, tipos que não são cadeia, padrões malformados, meses impossíveis e um vinte e nove de fevereiro fora de bissexto falham com invalid_input que nomeia o campo. Um valor de endpoints que não seja exclude nem include falha do mesmo jeito. Em caso de sucesso o corpo ecoa as cadeias canônicas start e end, o modo endpoints resolvido, days como a contagem não negativa, signed_days com direção cronológica, os componentes ano-mês-dia das duas datas e uma cadeia de fórmula curta. Solicitações API bem-sucedidas custam US$ 0,002; entrada inválida não é faturada.
Onde uma contagem de dias com seletor de extremos aparece
Como esta capacidade é um motor parse puro, o trabalho corre por inteiro no seu navegador nesta página, e pela API cada consulta bem-sucedida custa US$ 0,002 enquanto a validação com falha não consome saldo.
Perguntas técnicas
Quanto custa a calculadora do número de dias?
É grátis no seu navegador nesta página. Pela API uma solicitação bem-sucedida custa US$ 0,002; entradas inválidas não são cobradas.