检查日历中的时间是否重叠

我正在编写一个日历/议程程序(在 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


白衣非少年
浏览 161回答 2
2回答

守候你守候我

您还可以通过说较晚的持续时间仅在较早的结束后才开始来表示不重叠的持续时间:def&nbsp;overlap(self,&nbsp;other): &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;self.end_time&nbsp;<=&nbsp;other.start_time&nbsp;or&nbsp;other.end_time&nbsp;<=&nbsp;self.start_time

翻过高山走不出你

帕特里克是对的,你还需要检查 self 之间是否有其他的开始或结束。def overlap(self, other):&nbsp; if other.start_time < self.start_time < other.end_time:&nbsp; &nbsp; &nbsp;return False&nbsp; elif other.start_time < self.end_time < other.end_time:&nbsp; &nbsp; &nbsp;return False&nbsp; elif self.start_time < other.start_time < self.end_time:&nbsp; &nbsp; &nbsp;return False&nbsp; elif self.start_time < other.end_time < self.end_time:&nbsp; &nbsp; &nbsp;return False&nbsp; return True
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python