我正在编写一个日历/议程程序(在 Python3 中),它接收用户定义的约会并存储它们,但是,我的重叠功能有些困难。理想情况下,我不希望用户能够同时安排两个约会,或者他们交叉,但我无法使我的重叠功能正常工作。它目前允许您为相同/重叠的时间安排多个约会,我不太确定如何解决它。我在下面包含了重叠函数的代码,如果还需要其他任何东西,请告诉我!def overlap(self, other): if other.start_time < self.start_time < other.end_time: return False elif other.start_time < self.end_time < other.end_time: return False return True
2 回答

守候你守候我
TA贡献1802条经验 获得超10个赞
您还可以通过说较晚的持续时间仅在较早的结束后才开始来表示不重叠的持续时间:
def overlap(self, other): return self.end_time <= other.start_time or other.end_time <= self.start_time

翻过高山走不出你
TA贡献1875条经验 获得超3个赞
帕特里克是对的,你还需要检查 self 之间是否有其他的开始或结束。
def overlap(self, other):
if other.start_time < self.start_time < other.end_time:
return False
elif other.start_time < self.end_time < other.end_time:
return False
elif self.start_time < other.start_time < self.end_time:
return False
elif self.start_time < other.end_time < self.end_time:
return False
return True
添加回答
举报
0/150
提交
取消