伪代码:时间段1的开始时间小于时间段2的结束时间,并且时间段2的开始时间小于时间段1的结束时间。
代码形式:
时间段1:a--b
时间段2:c--d
if (a<d &&c<b)
{
// 两段时间有重合
}
判断两个时间段是否重叠的算法 SQL版
判断两个时间段是否重叠,如:
startdate1 — enddate1
startdate2 — enddate2
两个时间的重叠分4种情况,若你一一列出这四种情况来判断是否重叠那就弱爆了,最简单的方法:
startdate1 <=enddate2 and enddate1>=startdate2
若你无法理解上面这种方法,那我还有下面的方法提供给你:
(startdate1 BETWEEN startdate2 AND enddate2)
or (enddate1 BETWEEN startdate2 AND enddate2)
or (startdate2 BETWEEN startdate1 AND enddate1)
or (enddate2 BETWEEN startdate1 AND enddate1)