蟒蛇确定时间范围重叠?
问题描述:
我有很多时间范围在数据库中,并建立一个表格插入新的时间范围。蟒蛇确定时间范围重叠?
还我写一个函数之间新的时间范围检查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
答
if (earliest_end - latest_start).days >= 0:
return True
break
这种说法是什么返回true。你应该把它拿出来。
这里有两个可能重复的问题https://stackoverflow.com/questions/9044084/efficient-date-range-overlap-calculation-in-python和https://stackoverflow.com/questions/14885188/checking-for -overlap-时间跨度间 – Kasramvd