我要检测两个时间段是否重叠.
每个期间都有开始日期和结束日期.
我需要检测我的第一个时间段(A)是否与另一个时间段(B/C)重叠.
在我的情况下,如果B的开头等于A的结尾,它们不重叠(反过来)
我发现以下情况:

所以实际上我这样做是这样的:
tStartA < tStartB && tStartB < tEndA //For case 1
OR
tStartA < tEndB && tEndB <= tEndA //For case 2
OR
tStartB < tStartA && tEndB > tEndA //For case 3
Run Code Online (Sandbox Code Playgroud)
(案例4在案例1或案例2中被记入帐户)
它有效,但似乎效率不高.
所以,首先在c#中有一个现有的类可以对此进行建模(一个时间段),类似于时间跨度,但具有固定的开始日期.
其次:是否已经有ac#代码(比如在DateTime类中)可以处理这个问题?
第三:如果不是,那么你最快速地进行这种比较的方法是什么?