最佳答案
我必须检测两个时间段是否重叠
每个周期有一个开始日期和一个结束日期
我需要检测我的第一个时间段(A)是否与另一个时间段(B/C)重叠。< br / >
在我的例子中,如果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
(情况4在情况1或情况2的账户中被计入)
它作品,但它似乎不是很有效。
首先,c#中有一个现有的类可以对这个(时间段)进行建模,类似于一个时间跨度,但是有一个固定的开始日期。
其次:是否已经有c#代码(如在DateTime
类)可以处理这个问题?
第三:如果没有,你会用什么方法最快地进行比较?