Python 确定时间范围重叠?
我在数据库中有许多时间范围,并构建一个表单在其中插入新的时间范围 我还编写了一个函数来检查新时间范围和其他时间范围之间的重叠 例如,当第一个范围为14:00到15:00,第二个范围为16:00到17:00时,此函数工作正常,不会返回True 如果第二个范围是15:00到16:00,尽管两个范围没有任何重叠,但返回TruePython 确定时间范围重叠?,python,Python,我在数据库中有许多时间范围,并构建一个表单在其中插入新的时间范围 我还编写了一个函数来检查新时间范围和其他时间范围之间的重叠 例如,当第一个范围为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 e
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