Python 确定时间范围重叠?

Python 确定时间范围重叠?,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

我在数据库中有许多时间范围,并构建一个表单在其中插入新的时间范围

我还编写了一个函数来检查新时间范围和其他时间范围之间的重叠

例如,当第一个范围为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