我們在系統中經常會用到判斷兩個時間段是否有交叉的時段,例如同一個物業不能存在交叉時段租給兩個不同租戶等等。
時段1: S1-----> E1
時段2: S2-----> E2
方法一:什麽時候交叉,一个时间段的開始或結束时间在另一个时间中间
S1 S2 E1 E2
S2 S1 E2 E1
(S2 BETWEEN S1 AND E1) OR
(E2 BETWEEN S1 AND E1) OR
(S1BETWEEN S2 AND E2) OR
(E1 BETWEEN S2 AND E2)
方法二.什么情况下不交叉:
1. 時間段2的開始時間 大于時間段1的結束時間
2. 時間段2的結束時間小于時間段1的開始時間
S1 E1 S2 E2
S2 E2 S1 E1
S2 > E1 OR E2 < S1