1

ユーザーが入力した特定の日付が iCal の定期的なイベント ルールによって決定される日付に該当するかどうかを検証できるiCalendarルール マッチング アルゴリズムを探しています。

例えば:

  • ユーザー入力Nov 1, 2014(日付を解析できると仮定します)
  • ical イベントには次の繰り返しルールがありますFREQ=MONTHLY;BYMONTHDAY=1(これは基本的に、このイベントが毎月 1 日に発生することを意味します)

明らかに、2014 年 11 月 1 日は ical イベントの日付になります。これをプログラムでどのように把握できますか?開始日を指定して、繰り返しルールによって決定された日付のリストを取得するにはどうすればよいですか?

これを行う例やライブラリはありますか?

私は主に JS と PHP のライブラリ/スニペットを探していますが、どのようなタイプの擬似コードでも問題ありません。

明確化: iCalendar は、RFC 5545 Internet Calendaring and Scheduling Core Object Specification を参照します。

4

1 に答える 1

1

PHP の場合: phpicalendar ( here )、キャッチは、アルゴリズムが JS の残りのコードから簡単に分離されないことです。いくつかの試みがありますが、rfc5545 に十分に準拠しているかどうかを確認したことはありません。

それはすべて、どれだけのコンプライアンスが必要かによって異なります。たとえば、タイムゾーンのサポートを追加すると、国が 1 日失われるというまれなケースに対処できます (2011 年に 12 月 29 日から 12 月 31 日にスキップしたサモア島のように)。

于 2012-05-18T15:02:09.153 に答える