ForHosting KIT · Ferramentas para dev

Calculadora de tempo sobreposto entre dois intervalos

Esta calculadora mede exatamente quanto tempo dois intervalos explícitos de data e hora têm em comum.

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

Informe o início e o fim de cada intervalo no formato ISO 8601, com Z ou um deslocamento UTC numérico. O cálculo converte todos os limites para a mesma linha do tempo UTC, seleciona o início posterior e o fim anterior e retorna a duração compartilhada em milissegundos, segundos, minutos e horas. Intervalos separados ou que apenas se encostam retornam zero, facilitando o uso em agendas, faturamento, monitoramento e relatórios.

Defina os dois intervalos com limites inequívocos

Informe quatro valores: início e fim do primeiro intervalo, seguidos pelo início e fim do segundo. Cada valor deve ser uma data e hora ISO 8601 completa, com data civil, horário incluindo segundos e Z ou deslocamento explícito, como +02:00 ou -05:30. Exigir o deslocamento evita que um horário local seja interpretado de maneira diferente em outro computador. Cada início deve ser anterior ao respectivo fim. A calculadora considera intervalos semiabertos: o início pertence ao intervalo, enquanto o fim é o limite excluído. Essa convenção evita contar duas vezes o mesmo instante quando reservas, turnos ou janelas consecutivas se encontram. São aceitos de um a três dígitos fracionários nos segundos, normalizados para milissegundos. Datas e componentes de horário são validados diretamente; valores impossíveis produzem erro de entrada. Use sempre os mesmos quatro campos, mesmo quando você não espera uma interseção.

Entenda o cálculo determinístico em UTC

Antes da comparação, o cálculo posiciona os quatro limites em uma única linha do tempo UTC. Um valor terminado em Z já está em UTC. De um valor com deslocamento positivo, esse deslocamento é subtraído; a um valor com deslocamento negativo, ele é somado. Assim, duas datas escritas de formas diferentes podem representar o mesmo instante. A sobreposição começa no mais tardio dos dois inícios e termina no mais cedo dos dois finais. Se esse fim ocorrer depois do início calculado, a diferença será a duração compartilhada; caso contrário, ela será exatamente zero. A implementação usa aritmética do calendário gregoriano e milissegundos inteiros, sem consultar relógio, localidade, banco de fusos, rede, aleatoriedade ou Date do JavaScript. Entradas iguais sempre geram resultados iguais. A saída apresenta uma única duração em milissegundos, segundos, minutos e horas, permitindo que você escolha a unidade adequada ao seu fluxo.

Use o resultado com segurança em fluxos reais

Use a duração de sobreposição sempre que precisar comparar duas janelas conhecidas: um turno com uma licença aprovada, a operação de um equipamento com uma faixa tarifária, um incidente com o horário de atendimento ou uma reserva com um bloco disponível. Um valor positivo mostra quanto tempo existe em comum, não apenas se há interseção. Zero significa que os intervalos estão separados ou que um termina exatamente quando o outro começa; nos dois casos, não há tempo decorrido compartilhado pela convenção semiaberta. Para valores financeiros ou cotas, use overlap_milliseconds ou overlap_seconds como fonte e aplique seu arredondamento documentado apenas depois. Não arredonde os limites antes, salvo se isso fizer parte da sua política. O endpoint aceita somente deslocamentos explícitos; não aceita nomes como America/New_York nem deduz horário de verão. Resolva horários locais antes da chamada. A API custa US$ 0,002 por solicitação, e o navegador executa localmente a mesma lógica para verificações interativas.

Medir cobertura de turnos

Calcule quanto de um turno coincide com uma janela operacional atendida, remunerada ou aprovada.

Alocar tempo de incidentes

Meça a parte de uma indisponibilidade ocorrida durante um período contratual de suporte ou serviço.

Verificar conflitos de reservas

Quantifique o tempo compartilhado entre duas reservas em vez de receber apenas uma resposta positiva ou negativa.

O que acontece quando os intervalos não se sobrepõem?

Os quatro campos de duração retornam zero. Isso também ocorre quando um intervalo termina exatamente no início do outro.

Deslocamentos UTC diferentes são aceitos?

Sim. Cada limite pode usar Z ou seu próprio deslocamento numérico, e todos são comparados na mesma linha do tempo UTC.

Os extremos dos intervalos são inclusivos?

O cálculo usa intervalos semiabertos: o início é incluído e o fim é excluído. Portanto, intervalos adjacentes têm duração comum zero.

O cálculo usa o fuso horário do servidor?

Não. Ele usa aritmética gregoriana e de deslocamentos sem Date, banco de fusos, relógio da máquina ou localidade.

Quanto custa uma solicitação à API?

O preço é US$ 0,002 por solicitação. A execução interativa no navegador não gera cobrança da 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.

POSThttps://api.kit.forhosting.com/date/overlap-duration

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/overlap-duration \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"first_start":"2026-07-25T09:00:00Z","first_end":"2026-07-25T12:30:00Z","second_start":"2026-07-25T11:15:00+00:00","second_end":"2026-07-25T14:00:00+00:00"}'
{
  "first_start": "2026-07-25T09:00:00Z",
  "first_end": "2026-07-25T12:30:00Z",
  "second_start": "2026-07-25T11:15:00+00:00",
  "second_end": "2026-07-25T14:00:00+00:00"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "date.overlap_duration",
  "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 →