問題タブ [rrule]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rrule - RRule は、毎日特定の 2 時間に発生するイベントを記述できますか?
毎日午後 7 時と午後 2 時に発生するイベントがあるとします。RRule は次のようになります。
午前 10 時と午後 2 時30 分に発生するイベントが必要な場合は、次のようになります。
しかし、これは正しくないようです。仕様では、「頻度よりも短い期間の BYxxx ルール部分は、一般的に再発の発生回数を増加または拡大する」と述べています。これをhttp://jkbrzt.github.io/rrule/でテストすると、次のようになります。
- 月 10:00
- 月 10:30
- 月 14:00
- 月 14:30
- 火 10:00
- 火 10:30
- 火 14:00
- 火 14:30
私が本当に欲しいのはこれです:
- 月 10:00
- 月 14:30
- 火 10:00
- 火 10:30
- 水曜日 10:00
- 水 14:30
- 木 10:00
- 木 14:30
javascript - rruleJS: 週単位の場合のタイムゾーンの考慮
私は rruleJS ( https://github.com/jkbrzt/rrule ) を使用しており、開始日は次のようになっています。
開始日時: 2015-09-15 23:45 毎週第 3 週 平日: 月、水、日
私はそれを保存し、このルールを取得します:
ここで、再発の開始時刻は 23:45 になると予想します。
しかし、代わりに次の再発が発生します。
これは現地時間への変換のためです (CEST -> +2 時間 -> 23:45 が 01:45 になります)。タイムゾーンのオフセットを差し引くことはできますが、これは別の平日に切り替わります。たとえば、Wed Sep 16 2015 01:45:00 GMT+0200 (CEST) から 2 時間を引くと、Tue Sep 15 2015 23:45:00 GMT+0200 (CEST) になります。
しかし、それは私が望むものではありません: 時間は正確ですが、平日ではありません。火曜日ではなく、月曜日、水曜日、または日曜日に再発したくありません。
タイムゾーンを考慮しながら、平日の開始日を維持するにはどうすればよいですか?
icalendar - Google カレンダーの iCal; ルール:隔週の平日
私の妻(先生)は、隔週で教えています。それをカバーする繰り返しルールを作ることは可能ですか?私は試した:
...しかし、それはうまくいきませんでした。それは毎日、隔週でした。
rfc5545 - RRULE (rfc 5545) までとカウント
とに関するrfc5545を理解するのに苦労してuntilいcountます。私が理解していることから、RFC のこの部分に従って、UNTIL と COUNT を同じ繰り返しルールにすることはできません。
値の名前: RECUR
目的: この値の種類は、繰り返しルールの仕様を含むプロパティを識別するために使用されます。
正式な定義: 値の型は次の
表記法で定義されます。
さらにRFCでは、これは述べられています:
複数の BYxxx ルール パーツが指定されている場合、指定された FREQ および INTERVAL ルール パーツを評価した後、BYXXX ルール パーツは、BYMONTH、BYWEEKNO、BYYEARDAY、BYMONTHDAY、BYDAY、BYHOUR、BYMINUTE の順序で、現在評価されているオカレンスのセットに適用されます。 、BYSECOND および BYSETPOS。次に、COUNT と UNTIL が評価されます。
この最後の段落は、COUNT と UNTIL が同じ RRULE にある可能性があることを暗示しているようです。
rrule ジェネレーターと解析を実装するライブラリをチェックすると、COUNT と UNTIL が同じ繰り返しに含まれていないことを確認する検証がありません。
誰もがこれで通常行う一般的な実装は何ですか? COUNT と UNTIL の両方がある場合 (またはその逆)、この検証を無視して単純に UNTIL パラメーターを使用する必要がありますか? COUNT および UNTIL パラメータに関する RFC の正確な意味は何ですか?
icalendar - 2 つの異なる長さの iCal 規則
毎週月曜と火曜の 8 時から 3 時までと土曜の 8 時から 12 時までの予定を自分のカレンダーに登録したいと考えています。私のアプリは rrule をサポートしています。それを単一のルールに詰め込むことは可能ですか?
平日のみの場合、ルールは単純で次のようになります。
ヒントをいただければ幸いです。
android - カレンダーに繰り返しイベントを追加する際のエラー
こんにちは、カレンダーにイベントを追加するアプリを作成しようとしています。たとえば、12 月 31 日までの毎週土曜日にイベントを作成する必要があります。以下は、イベントを作成するために設定した属性です。
ただし、指定された日付 (sDate) のイベントを作成してから、毎週土曜日に作成します。しかし、特定の日付 (sDate) に作成された 1 つのイベントを回避するにはどうすればよいですか?
node.js - node.jsを実行しているサーバーでモーメントjsとタイムゾーンオフセットを使用して、日付をrrule文字列からUTC形式に変換するにはどうすればよいですか?
ブラウザで、rrule 文字列を生成するウィジェットを作成しました。
また、この関数を使用してブラウザからタイムゾーン オフセットを取得します。
それらを node.js を実行しているサーバーに送信します。サーバーでは、rrule とタイムゾーン オフセットを使用して、UTC 形式の日付のリストを生成したいと考えています。これが私が今それを行う方法です:
UTCで日付を取得するために機能しなかった関数を使用できるはずですが、何らかの理由で機能しません。これを行う正しい方法で瞬間を使用する方法について、何かが欠けていると思います。誰かが私が間違っていることを見ることができますか?
standards - iCalendar UNTIL ルールは DTSTART プロパティと同じタイプでなければなりませんか?
iCalendar RFC 5545 のセクション 3.3.10に、次の UNTIL パラメータの説明があります。
UNTIL ルール部分の値は、「DTSTART」プロパティと同じ値の型でなければなりません。さらに、「DTSTART」プロパティが現地時間の日付として指定されている場合、UNTIL ルール部分も現地時間の日付として指定する必要があります。「DTSTART」プロパティが UTC 時間の日付または現地時間とタイム ゾーン参照の日付として指定されている場合、UNTIL ルール部分は UTC 時間の日付として指定する必要があります。
ただし、3.8.5.3 Recurrence Ruleパラグラフでは、DTSTART プロパティに関係なく、UNTIL は常に UTC で指定されます。
そのような例は全部で 5 つあります。
また、DTSTART プロパティに関係なく、少なくとも 2 つの CalDAV クライアント (iOS および Mozilla Lightning) が常に UTC で UNTIL パラメータを送信することもわかりました。
UNTIL が常に UTC でなければならない唯一の場所は、VTIMEZONE の RRULE です。それとも私は何かを得ていませんか?
cron - 定期的なイベント、それらを保存する方法は?
定期的なイベントに関して以前に尋ねられたいくつかの質問を見つけましたが、私のニーズに近いものには行っていません。通知システムの定期的なイベントを処理する方法を理解するのに苦労しています。
これまでのところ、2 つのオプションを知っています。
パターンを持つ単一のイベントを保存し、その場で将来のイベントを計算します (永遠に繰り返すなど)。cron パターンまたはさらに優れた RRULE を使用します。
特定の日付まで、将来のすべてのイベントを単一のイベントとして保存します。
オプション 1 に関する私の問題は、イベントに確認などの他のデータを保持する必要があり、繰り返しイベントがある場合は、繰り返しイベントごとに複数の確認を保持する必要があることです。これは、物事を機能させるための厄介なハックに変わります。他のデータが関連付けられている過去および将来のイベントを表示する方法を考えたくありません。
単一のイベントであっても、それぞれに関連付けられたすべての余分なデータを保存できるため、オプション 2 の方が適しています。問題は、将来の出来事に対処することです。まず、イベントが永遠に繰り返される場合、イベントを保存するために必要な量よりも多くなります。ユーザーがまだ生成されていない将来のイベントを表示したい場合、チャンクを実行してオンザフライで生成するだけですか? このオプションもハックのように感じます。
これまでのところ、RRULE について少し読んだところ、フロントエンドに rrule.js を使用し、バックエンドに他のいくつかのパッケージを使用できることがわかりました。
編集 1: より明確にするために、iCal 形式の標準を完全に使用するように完全に設定されているわけではなく、RRules のみを使用することを考えています。しかし、まだオプションを探しているので、考えが変わるかもしれません。
iCal Vevents と rrules はどのように DB に保存されますか?