問題は、MS Outlook カレンダーの動作から来ています。
「毎週月曜日」と「奇数日ごと」という 2 つの定期的なイベント (今日から開始) があるとします。交点をチェックしたり、各日付をブルートフォースすることなくアルゴリズム的に最初の交点を見つける方法はありますか?
定義は、CRON の表記法または ICal 表記法で行うことができます。関係ないと思います。
グレゴリオ暦でこれに対する解決策はありますか?
UPD : MS Outlook Calendar がこれらのイベントをどのように処理するかを知ることも興味深いです。つまり、それがその元をどのように発見するかを意味します。今日は2つのイベント?具体的な日付が定期的なイベントの定義に合っているかどうかを判断するためのテクニックでもあるはずです。
正式には、2 つの関数のアルゴリズムとして記述できます。
Date:intersection(Event e1, Event e2)
boolean:contains(Date date, Event ev)
制限に関しては、イベント定義の表記から行くことができます。Outlook (または iCal) では、複雑な種類の定期的なイベントを定義できないことがわかります。