Ponto médio entre duas datas
Informe duas datas ou horários e receba o instante exato no meio do caminho, em UTC: da meia-noite de 1º de janeiro de 2024 à meia-noite de 2 de janeiro de 2024, o ponto médio é o meio-dia de 1º de janeiro. Os fusos são considerados. 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-01T00:00:00Z
- End
- 2024-01-02T00:00:00Z
- Ponto médio
- 2024-01-01T12:00:00.000Z
- Início (epoch) (ms)
- 1.704.067.200.000
- Fim (epoch) (ms)
- 1.704.153.600.000
- Ponto médio (epoch) (ms)
- 1.704.110.400.000
Encontrar o ponto médio entre duas datas responde a uma pergunta diferente de contar dias inteiros, montar uma contagem regressiva ou calcular idade: pede o único instante equidistante entre dois pontos conhecidos da linha do tempo. Esta calculadora do ponto médio entre duas datas aceita dois datetimes ISO-8601 explícitos—carimbos completos com Z ou deslocamento numérico, ou só data tratada como meia-noite UTC—, converte ambos em milissegundos de época com aritmética gregoriana pura, faz a média desses instantes com o piso determinístico da soma e devolve o datetime intermediário formatado em UTC com precisão de milissegundo. Verificações clássicas: meia-noite a meia-noite em dias consecutivos cai ao meio-dia; um intervalo de um segundo cai ao meio-segundo; extremos idênticos devolvem o mesmo instante.
O que significa um ponto médio de instantes e o que a resposta contém
Calcular a média de dois instantes absolutos é o análogo temporal de achar o ponto médio de um segmento na reta numérica: se você conhece o início e o fim de uma reunião, um estudo, uma campanha ou uma janela contratual, o ponto médio é o único instante UTC equidistante em milissegundos de ambos os extremos.
Isso não é a data civil «no meio de março» em um intervalo de vários dias, nem um ponto médio de dias úteis que pula fins de semana, nem uma média de relógio de parede que finge que cada dia civil tem exatamente vinte e quatro horas e ignora deslocamentos.
Você informa start e end como cadeias ISO-8601; cada uma pode ser um datetime completo com segundos fracionários opcionais e deslocamento Z ou de horas e minutos, ou um valor só data YYYY-MM-DD tratado como meia-noite UTC para que pares de calendário simples ainda funcionem. Um campo formula breve reafirma a média para documentar o contrato junto da resposta. Casos rejeitados incluem start ou end ausente, cadeias que não são ISO-8601, meses ou dias impossíveis como 2023-02-29, componentes de relógio inválidos e anos fora de um a 9999.
Se você precisa de contagens de dias de calendário, partes de contagem regressiva ou idade em anos e meses, use essas ferramentas dedicadas; esta página responde apenas ao instante exato no meio do caminho entre dois carimbos validados.
Onde a aritmética de ponto médio se encaixa em planejamento, ciência e software
Gerentes de projeto marcam pontos de controle na metade do caminho quando uma janela de lançamento ou sprint é definida por dois carimbos explícitos e as partes interessadas querem um único horário de revisão no meio da janela em vez de um rótulo vago de meio da semana. Pesquisadores e sistemas de laboratório registram o ponto médio de um intervalo de observação para que tabelas resumo mostrem um instante representativo em gráficos e junções sem escolher arbitrariamente o início ou o fim.
Equipes de finanças e operações centralizam janelas de faturamento ou de aviso quando uma política se refere ao meio de um período já armazenado como par de instantes ISO em um razão. Educadores e redatores de normas usam a ferramenta para demonstrar que o ponto médio de um intervalo de um segundo é o meio-segundo, e que entradas com deslocamento ainda colapsam em uma única resposta normalizada com Z.
Combine com days-between, countdown-between ou ajudas de época quando precisar de passos temporais relacionados, e reserve esta página para a intenção de busca do ponto médio entre duas datas como datetime exato.
Casos de uso
Marcos de metade de projeto e campanha
Calcule o horário exato de revisão no meio da janela para um sprint, lançamento ou campanha de marketing definida por dois carimbos ISO.
Pontos médios de observação e experimento
Registre um único instante UTC representativo de um intervalo de observação para que gráficos e junções não escolham arbitrariamente o início ou o fim.
Perguntas frequentes
Fusos horários e deslocamentos afetam o resultado?
Sim, corretamente: deslocamentos em qualquer entrada são convertidos em UTC antes da média. O ponto médio sempre retorna com Z final em UTC.
E se os dois datetimes forem iguais, ou end for anterior a start?
Entradas idênticas devolvem esse mesmo instante como ponto médio.
Valores só de data são aceitos?
Sim. Uma cadeia YYYY-MM-DD é tratada como meia-noite UTC daquele dia civil e depois mediada como qualquer outro instante.
O ponto médio é o mesmo que o dia útil do meio?
Não. É o instante exato no meio do caminho entre os dois momentos, contado em milissegundos. Ele não pula fins de semana nem feriados e não é um rótulo aproximado como “meados do mês”.
Qual é a precisão do resultado?
O resultado sai em UTC, ao milissegundo. Quando o intervalo tem um número ímpar de milissegundos, o meio milissegundo é arredondado para baixo, e frações menores que um milissegundo são cortadas antes da média.
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/date/midpoint-between-dates \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start":"2024-01-01T00:00:00Z","end":"2024-01-02T00:00:00Z"}'const res = await fetch("https://api.kit.forhosting.com/date/midpoint-between-dates", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start": "2024-01-01T00:00:00Z",
"end": "2024-01-02T00:00:00Z"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/midpoint-between-dates",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start": "2024-01-01T00:00:00Z",
"end": "2024-01-02T00:00:00Z"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/midpoint-between-dates", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start":"2024-01-01T00:00:00Z","end":"2024-01-02T00:00:00Z"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start":"2024-01-01T00:00:00Z","end":"2024-01-02T00:00:00Z"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/midpoint-between-dates", 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-01T00:00:00Z",
"end": "2024-01-02T00:00:00Z"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.midpoint_between_dates",
"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.
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
O que significa um ponto médio de instantes e o que a resposta contém
A calculadora valida que ambos os dias existem no calendário gregoriano—incluindo 29 de fevereiro só em anos bissextos—, converte cada entrada em contagem de milissegundos de época UTC com aritmética civil proléptica e define midpoint_epoch_ms como o piso da soma das duas épocas dividida por dois, de modo que um total ímpar de milissegundos ainda produza uma única escolha determinística. A resposta ecoa as cadeias originais start e end para auditoria, devolve midpoint como cadeia ISO UTC com três dígitos fracionários e Z final, informa start_epoch_ms, end_epoch_ms e midpoint_epoch_ms para pipelines numéricos, e inclui span_ms como distância absoluta mais signed_span_ms como end menos start para ver a direção quando o segundo instante é anterior ao primeiro.
Como start e end são lidos e como o ponto médio permanece reproduzível
Cada cadeia é aparada; valores só data viram meia-noite UTC; datetimes podem usar T ou um espaço entre data e hora; segundos fracionários são aceitos e truncados a milissegundos inteiros antes da média para que ruído submilissegundo não invente um segundo ponto médio. Deslocamentos como mais zero dois dois pontos zero zero ou menos zero cinco dois pontos zero zero são convertidos em UTC subtraindo os minutos de deslocamento da época civil local, de modo que uma noite em Nova York e uma manhã em Paris que referem o mesmo intervalo absoluto ainda se media corretamente em UTC. O primeiro campo preferido é start, mas os aliases from, date1, a e begin são aceitos para que planilhas, query strings e formulários reutilizem o mesmo contrato sem renomear colunas. O segundo preferido é end, com aliases to, date2, b e finish pela mesma razão. O ponto médio é reformatado com o mapeamento inverso civil_from_days para que a cadeia UTC impressa coincida exatamente com midpoint_epoch_ms. Entradas idênticas produzem o mesmo instante como ponto médio; inverter o par deixa o ponto médio e o intervalo absoluto inalterados e apenas inverte o sinal de signed_span_ms.
Onde a aritmética de ponto médio se encaixa em planejamento, ciência e software
Nesta página o trabalho roda inteiramente no seu navegador; pela API cada consulta bem-sucedida custa US$ 0,002, validação falha não é cobrada e nada é armazenado após a resposta. Essa divisão—exploração interativa gratuita e API idêntica paga—corresponde ao restante do catálogo KIT de nível A e permite passar de uma verificação pontual a um pipeline sem mudar o resultado matemático.
Casos de integração
Fixtures determinísticos de CI e faturamento
Gere valores de ponto médio reproduzíveis para testes unitários, centros de razão e pipelines sem depender de Date ou do relógio do host.
Perguntas técnicas
Quanto custa a calculadora do ponto médio entre duas datas?
É gratuita 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.
Como o ponto médio é definido?
Ambas as entradas são convertidas em milissegundos de época UTC. midpoint_epoch_ms é floor((start_ms + end_ms) / 2) e formatado como cadeia ISO-8601 UTC com precisão de milissegundo.