当前位置: 首页 > 知识库问答 >
问题:

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

应嘉容
2023-03-14

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

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

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

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

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

共有1个答案

邹学民
2023-03-14

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

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

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

 类似资料:
  • 我是分析时间的新手complexity.some有人能帮我解决下面算法的时间复杂度吗? 外部循环将运行日志(n)次。内部循环将运行多少次。我们如何用“n”来计算内环的频率,因为它取决于变量“i”。 有人能帮忙找出上面代码的时间复杂度吗。

  • 问题内容: 有没有一种方法可以轻松地在一定时间内进行for循环?(无需使用System.currentTimeMillis()自己测量时间?) 即我想在Java中执行以下操作: 谢谢 问题答案: 不,没有内置的结构可以做到这一点。 我想指出,您不应使用System.currentTimeMillis()在指定时间段内执行或延迟任务。而是使用System.nanoTime()。前一种方法在Windo

  • 嵌套for、while和if语句的时间复杂度相同吗?假设作为长度的数组给出。 上述声明的适用范围为O(n²)。 乍一看,上面的循环可以被认为是O(n),但最终我认为它也是O(n²)。 我没说错吧?

  • 最近,我无意中编写了如下C代码: 仔细阅读代码,我发现了这个“错误”。然而,在运行时,它没有引起任何问题。明确地说,我的代码是用相对较新版本的MinGW-w64编译的,以创建本机Win32二进制文件。 当然,代码可以工作,但我很惊讶这是允许的,更奇怪的是,我的GCC-ish编译器没有抱怨它!(这个错误有GCC警告选项吗?) 有人能解释为什么这是允许的,以及为什么内部和外部变量不冲突/中断吗?理想情

  • 问题内容: 如何确定给定的整数是否在其他两个整数之间(例如大于/等于10000和小于/等于30000)? 我使用的是2.3 IDLE,到目前为止,我一直没有尝试: 问题答案:

  • 如何确定给定整数是否介于其他两个整数之间(例如,大于/等于和小于/等于)? 我使用的是2.3 IDLE,到目前为止我所尝试的方法不起作用: