ForHosting KIT · Datas e tempo

Interseção de intervalos

Digite dois intervalos de tempo e receba a parte que eles compartilham: de 10:00 a 12:00 e de 11:00 a 13:00 UTC se sobrepõem de 11:00 a 12:00, uma hora exata. Se só se tocam, o resultado fica vazio. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Início do intervalo A
2020-01-01T10:00:00.000Z
Fim do intervalo A
2020-01-01T12:00:00.000Z
Início do intervalo B
2020-01-01T11:00:00.000Z
Fim do intervalo B
2020-01-01T13:00:00.000Z
Você obtém
Início da interseção
2020-01-01T11:00:00.000Z
Fim da interseção
2020-01-01T12:00:00.000Z
Duração da interseção (milissegundos)
3.600.000
Duração da interseção (horas)
1

Calcula a sobreposição de dois intervalos ISO com ordem estrita, duração em milissegundos e horas. Grátis, determinístico e privado no navegador.

O que significa dois intervalos se sobreporem

Dois intervalos de tempo se sobrepõem quando existe um trecho que pertence aos dois. Pense em duas reservas de sala ou em duas janelas de incidentes num painel de suporte: a pergunta não é quanto dura cada um, e sim que parte eles têm em comum. A regra é curta. O trecho comum começa no mais tardio dos dois inícios e termina no mais cedo dos dois fins. Se esse início vem estritamente antes desse fim, há sobreposição e você recebe o trecho com a duração em milissegundos e em horas. Para 10:00 a 12:00 e 11:00 a 13:00 UTC, a sobreposição vai de 11:00 a 12:00, uma hora exata.

Os casos-limite que confundem

Dois intervalos que só se tocam, como um que termina às 12:00 e outro que começa às 12:00, não compartilham tempo, porque o fim é tratado como excluído; o resultado fica vazio e as duas durações valem zero. A ferramenta nunca devolve a união dos dois intervalos, só a parte em comum. Cada valor é um horário completo no padrão ISO 8601 e o resultado sai em UTC. Um intervalo cujo fim vem antes do início, ou um valor ausente ou inválido, é recusado em vez de virar uma sobreposição vazia.

Entradas, saídas e casos limite

Os quatro campos são cadeias obrigatórias para que a sonda do esquema possa montar uma amostra completa a partir dos exemplos publicados. Intervalos adjacentes que só se tocam em um ponto produzem resultado vazio porque a comparação é estritamente menor, o que combina com sistemas de agenda que tratam o fim como exclusivo. Janelas sobrepostas devolvem apenas o trecho compartilhado, nunca a união.

Tipos incorretos, campos ausentes e faixas invertidas falham cedo para que clientes não vejam sobreposições nulas silenciosas.

Sobreposição de reuniões

Encontre a janela compartilhada entre duas reservas com durações estáveis.

Painéis de suporte

Destaque quando duas janelas de incidente coincidem sem planilha.

Automação

Chame a mesma função pura a partir de scripts que fundem calendários.

É grátis?

Sim. Tier A roda inteiramente no navegador sem conta.

Chama a rede?

Não. O motor parse mantém tudo no dispositivo.

Os resultados são estáveis?

Sim. Matemática determinística e exemplos dourados fixam o contrato.

Como é calculada a sobreposição de dois intervalos?

A parte em comum começa no maior dos dois inícios e termina no menor dos dois fins. Se esse início vem antes desse fim, os intervalos compartilham tempo; caso contrário, o resultado fica vazio e a duração é zero.

E se um intervalo termina exatamente quando o outro começa?

O resultado fica vazio. O fim de cada intervalo é tratado como excluído, como na maioria dos sistemas de agendamento, então dois intervalos que só se tocam em um instante não compartilham tempo.

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/interval-intersection

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/interval-intersection \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"a_start":"2020-01-01T10:00:00.000Z","a_end":"2020-01-01T12:00:00.000Z","b_start":"2020-01-01T11:00:00.000Z","b_end":"2020-01-01T13:00:00.000Z"}'
{
  "a_start": "2020-01-01T10:00:00.000Z",
  "a_end": "2020-01-01T12:00:00.000Z",
  "b_start": "2020-01-01T11:00:00.000Z",
  "b_end": "2020-01-01T13:00:00.000Z"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "date.interval_intersection",
  "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.

Como funciona a interseção de intervalos

O início da interseção é o máximo dos dois inícios e o fim é o mínimo dos dois fins. Dois intervalos civis A e B são definidos por quatro carimbos ISO-8601: a_start, a_end, b_start e b_end. O motor analisa cada extremo com o parser Date do ambiente, rejeita valores que não são cadeias ou não podem ser analisados com mensagens invalid_input claras que nomeiam o campo, e exige que a_start seja estritamente menor que a_end e b_start estritamente menor que b_end. Quando o início é estritamente menor que o fim o resultado não está vazio e carrega start e end como cadeias ISO UTC mais duration_ms e duration_hours arredondadas a um decimal estável; caso contrário empty é verdadeiro, start e end são null e ambos os campos de duração valem zero.

Entradas, saídas e casos limite

Os exemplos dourados cobrem uma sobreposição de uma hora, um par disjunto vazio, uma faixa A invertida e um payload completamente ausente para que as ligações de interface sejam honestas.

Determinismo, limites e integração

A implementação é lógica pura de motor parse sem rede, relógio ou aleatoriedade além dos carimbos que você fornece, de modo que entradas idênticas produzem sempre saídas idênticas. Carimbos extremamente distantes seguem sujeitos à precisão de milissegundos IEEE do tipo Date da plataforma; documente esse contrato ao armazenar resultados. Revise o esquema publicado antes de ligar métricas e associe apenas as chaves de sucesso documentadas empty, start, end, duration_ms e duration_hours.

E se a entrada for inválida?

Você recebe invalid_input com mensagem clara em inglês.

Quem é o autor?

Aspire no ateliê KIT da ForHosting.

Ver a documentação completa do KIT →