提问者:小点点

确定两个循环时间是否重叠


我一直在检查重叠时间。我的日历实现允许循环或环绕时间(因此在结束时间之后有开始时间是可能的)

例如:starttime=3:30pm,endtime=3:29pm,timeduration=23小时59分钟

我在网上找到的一些答案,当结束时间严格地晚于开始时间时起作用。我该怎么解决这个?我正在使用这个StackOverflow解决方案,但它不能完全工作:确定两个日期范围是否重叠

在这张图片中,两个时间范围重叠,但我的植入没有正确地识别它:重叠的时间

这里是调试输出,它应该返回True,但不是:debug output


共1个答案

匿名用户

如果你考虑单独的时间,你的间隔可以跨越48个小时:极端的时间是11:59:59pm到11:59:58pm。

从本质上说,这将映射到0:00到48:00。我要做的第一件事是将上午/下午转换为军事时间。如果结束和开始之间的差异是负数,则添加一个检查,如果是,我将为结束时间添加24小时。

现在您需要找到重叠的部分。