【问题标题】:Detecting overlapping date recurrence rules检测重叠的日期重复规则
【发布时间】:2011-08-31 22:40:19
【问题描述】:

我正在使用一个看起来像 Google 日历的应用程序,但有一个主要区别:事件不应该与其他事件有交集。这意味着没有两个事件可以共享公共时间,即使以分钟为单位也是如此。这对于只存储会议的日历特别有用,因为不可能同时参加两个会议。

就像 Google 日历一样,可以使用重复规则(例如,每个星期五和星期日的上午 10 点到下午 13 点)创建活动。所以我想只使用rrules(python-dateutil 模块的)来检测重叠事件,而不需要创建 N 个日期时间对象并检查每个对象的交集。

是否可以仅使用规则来检测重叠日期?其他库中是否已经实现了类似的功能?

【问题讨论】:

    标签: python intersection python-dateutil python-datetime interval-intersection


    【解决方案1】:

    不,我不相信有可能在不创建日期时间对象的情况下分析一个规则来查看它是否可以与另一个规则相交。

    本质上,您是在不运行算法的情况下要求算法的输出,我认为这是不可计算的。

    但是,对于某些类型的规则,它是可能的 - 例如每个星期四的规则不能与每个星期二的规则相交。有问题的是一个月中的几天和一年中的几天与一周中的几天相交,以及从不相交的频率。

    最好的办法是执行可分析检查的规则,然后对其他人生成明年左右的数据并手动进行比较。

    算法可以快速运行,因为您可以在添加每个规则时缓存现有的占用时间。

    【讨论】:

      猜你喜欢
      • 2012-11-10
      • 2013-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多