我正在编写一个日历/议程程序(在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
答案 0 :(得分:1)
帕特里克(Patrick)是正确的,您还需要检查自己之间是否有其他起点或终点。
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
答案 1 :(得分:1)
您还可以表示不重叠的持续时间,方法是说较晚的只有在较早的结束时才开始:
def overlap(self, other):
return self.end_time <= other.start_time or other.end_time <= self.start_time