You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断两个无限重复时间区间未来是否重叠?

如何判断两个无限重复时间区间链未来是否重叠?

我用以下三个参数构建无限重复的时间区间链:

startTime(区间链的起始时间)
repeatEveryMinuteInterval(重复间隔,单位:分钟)
duration(单次区间持续时长,单位:分钟)

区间链示例

示例1

StartTime - 15:00 UTC 2022年9月19日
repeatEveryMinuteInterval - 15
duration - 5分钟

15:00 - 15:05
15:15 - 15:20
15:30 - 15:35
15:45 - 15:50
16:00 - 16:05
// 该区间链无限循环

示例2(原文笔误已修正)

StartTime - 03:07 UTC 2022年10月19日
repeatEveryMinuteInterval - 30
duration - 5分钟

03:07 - 03:12
03:37 - 03:42
04:07 - 04:12
// 该区间链无限循环

重叠定义

若两个区间存在部分时间重叠(哪怕是一小段),则视为重叠,例如:

15:30 - 15:45
15:25 - 15:31 

二者因共享15:30 - 15:31时间段而重叠

核心问题

由于两个区间链是无限的,如何判断它们在未来是否会出现重叠?

我目前想到两种不太理想的实现思路:

  • 直接假设它们会重叠,因为无限集合无法计算出一致结果;
  • 计算后续1000次循环的区间并对比,但无法确定迭代次数是否足够,且担心计算耗时。

更新说明

  • 若有支持时区或无时区的解决方案,欢迎交流;
  • 此前该问题曾关闭,现因得知可解决而重新提问;
  • 补充repeatEveryMinuteInterval >= duration的示例:

示例3

StartTime - 00:00 UTC 2022年9月20日
repeatEveryMinuteInterval - 600(每10小时)
duration - 5分钟

00:00 - 00:05
10:00 - 10:05
20:00 - 20:05
// 其他循环区间

示例4

StartTime - 19:02 UTC 2022年9月20日
repeatEveryMinuteInterval - 30
duration - 5分钟

19:02 - 19:07
19:32 - 19:37
20:02 - 20:07
// 其他循环区间

在该示例中,两个区间在以下时间段重叠:

interval 1: 20:00 - 20:05
interval 2: 20:02 - 20:07

内容的提问来源于stack exchange,提问作者Satoshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 21:20:43