检查:两个具有不同参数和时隙的规则重叠

时间:2019-05-23 18:22:51

标签: time overlap

我必须创建一种算法,在该算法中将为我提供两个具有不同频率,间隔,计数和开始的不同RRULE。同样,将为这些规则提供相应的时隙以创建时间范围,就像日历中的重复事件一样。我需要检查给定的两个带有相应时隙的RRULE是否在整个将来甚至一次都相互重叠,直到建立RRULE。

可以在此处检查规则:https://github.com/rlanvin/php-rrule/wiki/RRule

就目前而言,我想到了一种简单情况的方法,在该情况下,我将首先确定两个RRULE重复出现(重复)或gcd(最大公约数)的最小时间部分然后在那段时间检查两个时隙是否重叠,然后继续构建RRULE并进行比较。

对于Ex:

  

Freq1 = 3天
  频率2 = 2天
  因此,gcd = 1天
  因此,我将通过比较它们的小时-分钟-秒部分来检查1天的时隙是否彼此重叠,然后仅考察构建完整RRULE的时间。

这里唯一的问题是,对于RRULE的各种频率组合,要考虑很多情况。

如果有更好的方法或某些库可以这样做,请告诉我。

0 个答案:

没有答案