Вопрос возникает из поведения календаря MS Outlook.
Представьте, что у меня есть два повторяющихся события (начиная с сегодняшнего дня): "каждый второй понедельник" и "каждая нечетная дата". Есть ли способ проверить пересечения и / или найти первую пересекающуюся дату алгоритмически, без перебора по каждой дате?
Определения могут быть сделаны в нотациях CRON или нотациях ICal. Я думаю, это не имеет значения.
Есть ли решения для этого в григорианском календаре?
UPD : Интересно также узнать, как MS Outlook Calendar обрабатывает эти события. Я имею в виду, как он обнаруживает, что бывший сегодня есть два события? Я полагаю, должна быть методика определения того, подходит ли конкретная дата для определения повторяющегося события.
Формально это можно описать как алгоритм двух функций:
Date:intersection(Event e1, Event e2)
boolean:contains(Date date, Event ev)
Что касается ограничений, мы можем перейти от обозначения определения события. Вы можете видеть в outlook (или iCal), что вы можете определить не такой сложный вид повторяющегося события.