我必须创建一种算法,在该算法中将为我提供两个具有不同频率,间隔,计数和开始的不同RRULE。同样,将为这些规则提供相应的时隙以创建时间范围,就像日历中的重复事件一样。我需要检查给定的两个带有相应时隙的RRULE是否在整个将来甚至一次都相互重叠,直到建立RRULE。
可以在此处检查规则:https://github.com/rlanvin/php-rrule/wiki/RRule
就目前而言,我想到了一种简单情况的方法,在该情况下,我将首先确定两个RRULE重复出现(重复)或gcd(最大公约数)的最小时间部分然后在那段时间检查两个时隙是否重叠,然后继续构建RRULE并进行比较。
对于Ex:
Freq1 = 3天
频率2 = 2天
因此,gcd = 1天
因此,我将通过比较它们的小时-分钟-秒部分来检查1天的时隙是否彼此重叠,然后仅考察构建完整RRULE的时间。
这里唯一的问题是,对于RRULE的各种频率组合,要考虑很多情况。
如果有更好的方法或某些库可以这样做,请告诉我。