时间段的重叠判断

 
两个时间段判断是否重叠比较常见,
如: startdate1 -- enddate1
      startdate2 -- enddate2
固然前提是保证开始时间早于结束时间,什么你问若是不是?那你就本身处理一下保证开始时间早于结束时间.
可能首先想到的是
(startdate2 between startdate1 and enddate1)
or (enddate2 between startdate1 and enddate1)
or(startdate1 between startdate2 and enddate2 )
or(enddate1 between startdate2 and enddate2)
 
以此类推,多段也貌似可以判断,可是否能彻底覆盖到呢?有兴趣能够本身验证一下.
可是我的感受有点麻烦,在此介绍一个简单的方法.若是你发现此方法有问题欢迎一块儿讨论.
 
假设要加入的时间段为 as1  ae1
已存在的全部时间段为  xs1  xe1
xe1>as1 and xs1<ae1
知足有重叠,不知足无重叠
 
  时间段的重叠判断
同时知足绿和红则有重叠
绿线:已存在的全部结束时间大于要添加的开始时间
红线:已存在的全部开始时间都小于要添加的结束时间
相关文章
相关标签/搜索