编程语言
首页 > 编程语言> > python-检测重叠的日期重复规则

python-检测重叠的日期重复规则

作者:互联网

我正在使用外观类似于Google日历的应用程序,但有一个主要区别:事件不应与其他事件相交.这意味着即使以分钟为单位,也没有两个事件可以共享公共时间.这对于仅存储会议的日历特别有用,因为不可能在两个会议中同时进行.

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

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

解决方法:

不,我认为无法分析规则以查看是否可以与另一个规则相交而不创建日期时间对象.

本质上,您是在不运行算法的情况下索要算法的输出,我认为这是不可争议的.

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

最好的选择是制定可以在分析上进行检查的规则,然后为其他规则生成下一年左右的数据并手动进行比较.

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

标签:python-datetime,python-dateutil,intersection,python,interval-intersection
来源: https://codeday.me/bug/20191208/2088050.html