0
私はデータベースに多くの時間範囲を持ち、新しい時間範囲を挿入するためのフォームを作成します。python - 時間範囲の重複を判別しますか?
例えば第1の範囲15:00 14:00であり、第二範囲17:00この関数の午後四時00分である場合にも、私は他の時間範囲
と新しい時間範囲の間overlaping確認する関数を書きますTrueを返しません。
2つ目の範囲が15:00から16:00の場合、2つの範囲は重なり合いませんが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
ここに2つの重複する質問があります。https://stackoverflow.com/questions/9044084/efficient-date-range-overlap-calculation-in-pythonとhttps://stackoverflow.com/questions/14885188/checking-for -overlap-between-time-span – Kasramvd