问题来自MS Outlook日历行为。
想象一下,我有两个反复发生的事件(从今天开始):“每个第二个星期一”和“每个奇怪的日期”。有没有办法检查交叉点和/或在算法上找到第一个交叉日期,而不是在每个日期强制执行?
可以用CRON符号或ICal符号表示定义。我认为没关系。
格里高利历中有没有解决方法?
UPD :了解MS Outlook日历如何处理这些事件也很有趣。我的意思是它如何发现前者。今天有两个活动?我想也应该是确定具体日期是否适合重复事件定义的技术。
形式上它可以描述为两个函数算法:
Date:intersection(Event e1, Event e2)
boolean:contains(Date date, Event ev)
关于限制,我们可以从事件定义表示法开始。您可以在outlook(或iCal)中看到,您可以定义不是那种复杂的重复事件。
答案 0 :(得分:1)
由于第一次复发的时间是14天,因此当月份以奇数结束时,当天的奇偶校验(奇数或偶数)将发生变化:Jan,leap Feb,Mar,May,Jul,Aug,Oct, 12月在一个月内它不会改变。
答案 1 :(得分:1)
如果您只关心同一天发生的不同复发事件,您可以:
例如,如果“每个星期一”和每个“第5天”的复发都在第1天发生碰撞,那么它们将在第36天,第71天,第106天等发生碰撞
如果你想要更精确的东西,你需要不是在整天测量,而是在你感兴趣的一天中测量。