python - 如何比较python中的时间跨度?

标签 python django

假设我有两组时间跨度。所以一个是上午 10:00 到下午 12:00,另一个是上午 11:00 到下午 13:00,两者都在同一天。如何轻松计算以确定它们是否重叠?

我的代码是无关紧要的,但只是为了理解用例 - 我正在开发一个 Django 应用程序,我想在其中构建某种时间表,如下所示:

class TimeSpan(models.Model):
    start = models.DateTimeField()
    end   = models.DateTimeField()

class Worker(models.Model):
    name = models.CharField(max_length=100)
    limitations = models.ManyToManyField(TimeSpan)

Class Shift(models.Model):
    workers = models.ManyToManyField(Workers)
    timespan = models.ForeignKey(TimeSpan)

我需要能够将类次的 TimeSpan 对象与每个 worker 的限制进行比较。这样做的好方法是什么?

最佳答案

查找两个时间范围是否重叠的最简单方法如下

overlap = span_1_start < span_2_end and span_1_end > span_2_start

关于python - 如何比较python中的时间跨度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57028439/

相关文章:

python - 在 GAE 项目中包含和引用第 3 方库

python - 用于开发环境的Docker设置?

python - 如何基于 yml 文件但使用不同的 Python 版本创建新的 conda env

python - Flask 导入错误 "cannot import name ' Flask'”

python - 使用 __init__ 继承属性

python - 中和不可见的 ASCII 字符以打印 ASCII 表

python - 重新验证/确认用户凭据

python - 如何在 Django 中自定义表单的呈现?

django - Django 中 CONN_MAX_AGE 的一个好的值是多少?

python - Django 和多图上传表单