蟒蛇确定时间范围重叠?

问题描述:

我有很多时间范围在数据库中,并建立一个表格插入新的时间范围。蟒蛇确定时间范围重叠?

还我写一个函数之间新的时间范围检查overlaping与其他时间范围

当第一范围例如是14:00到15:00和第二范围是16:00至17:00这个功能效果很好,不会返回True。

如果第二个范围是15:00到16:00虽然两个范围没有任何重叠但是返回True!

def is_overlap(start_date, end_date, obj): 
""" 
Check overlaping between start_date and end_date 
start_date = Start Meeting DateTime 
end_date = End Meeting DateTime 
obj = Model query objects 
""" 

for q in obj: 
    latest_start = max(start_date, q.start_date) 
    earliest_end = min(end_date, q.end_date) 

    if (earliest_end - latest_start).days == 0: 
     if not (earliest_end - latest_start).seconds == 0: 
      return True 
      break 

    if (earliest_end - latest_start).days >= 0: 
     return True 
     break 
+1

这里有两个可能重复的问题https://stackoverflow.com/questions/9044084/efficient-date-range-overlap-calculation-in-python和https://stackoverflow.com/questions/14885188/checking-for -overlap-时间跨度间 – Kasramvd

if (earliest_end - latest_start).days >= 0: 
     return True 
     break 

这种说法是什么返回true。你应该把它拿出来。