問題タブ [recurring-events]

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.

0 投票する
0 に答える
373 参照

javascript - ISO8601 の繰り返し間隔をサポートする JavaScript ライブラリはありますか?

主に Web 開発者が使用するために、定期的な間隔でデータを公開したいと考えています (たとえば、「日付 ....-..-.. から始まる毎週火曜日」)。私は、ISO 8601 規格を使用することで、データの操作が容易になると考えていました。

しかし、実際には ISO 8601 の日付を定期的な間隔で解析できるライブラリはありますか? 例えば:R/2015-01-14/P2W

Javascript のネイティブDateオブジェクトが失敗します。

Moment.jsが失敗する:

それで、私が見つけていない繰り返しの間隔(具体的にはR/.../PxW上記の形式)のサポートはありますか?

0 投票する
1 に答える
7030 参照

sql - 例外を伴う定期的なイベントのデータベース設計

さまざまな種類のイベントを保存/管理する必要があるシステムを構築しています。簡単にするために、カレンダーの設計に焦点を当てます (少し異なるものを作成していますが、カレンダーは良い例えであり、簡単に推論できます)。考えられるデータベース/スキーマ設計のアイデアについて聞きたいです。

問題の説明

さまざまな種類のイベントを含むカレンダーがあります (簡単にするために、イベントの種類は 1 つだけであるとします: タスク)。ユーザーは、特定の日付の新しいイベントを追加したり、編集 (タイトルなどの詳細を変更したり、別の日付に移動) したり、削除したりできます。1 回限りのイベントと定期的なイベントがあります (さまざまな種類の繰り返し: X 日ごと、月の 15 日ごと、毎週月曜日、単純な cron のようなもの)。ユーザーが定期的なイベントを移動すると、このイベントの他のすべてのインスタンスが同じ方法で移動されます (例: +3 日)。重要な部分: 定期的なイベントには例外がある場合があります。たとえば、7 日ごとに繰り返される定期的なイベント A があるとします。しかし、来週の日付に変更したいので、火曜日ではなく金曜日に割り当てられ、その後も火曜日に発生します。この「例外」

また、すべての定期的なイベントには、特定の 1 つのインスタンスのみに関連する追加情報を含めることができます。たとえば、同じ定期的なイベント A が 7 日ごとに繰り返され、今週のインスタンスに「X」というメモを追加したい、および「Y」と書かれた翌月のイベントに別のメモを追加したい - これらのフィールドは、その単一のインスタンスにのみ表示されます。

アイデア

定期的な 1 回限りのイベントを含むシステムは非常に簡単なので、それについては説明せず、定期的なイベントのみに焦点を当てます。

1.考えられる解決策の 1 つは、OOP に似たものです。 、 ( である可能性があります )、( 、 、 の可能な値を持つ列挙型のようなもの) および ( と言う) などのフィールドを持つ「クラス」を持つことができEventます。ユーザーが新しい定期的なイベントを追加すると、データベースにそのようなイベントが作成されます。ユーザーがこのイベントの 1 回の発生を変更したい場合、別の日付で「継承」するタイプ/クラスの DB に新しいエントリを追加し、その(または、必要に応じて)を指す追加フィールドを持ちます。に関連しています。しかし同時に、すべての情報を追跡する必要があります。start_dateend_datenullrecurrence_typeEVERY_X_DAYSDAY_OF_WEEKDAY_OF_MONTHrecurrence_value7EventMovedEventEventrelated_toIDUUIDEventMovedEvents (そうしないと、同じ週に 2 つのイベントが表示されます)、すべての を指す の配列が必要moved_eventsです。 不利な点: カレンダーを表示するたびに、からすべてのイベントを取得して選択する必要があります。移動したイベントが多数ある場合、これは最適ではありません。IDMovedEventEventmoved_events

2.もう 1 つのアイデアは、すべてのイベントを個別のレコードとして保存することです。IMO ひどい考えですが、可能性があるので言及します。欠点: メイン イベントを編集するたびに (例: イベントを「7 日ごと」から「9 日ごと」に変更したい)、イベントのすべての発生を変更する必要があります。ただし、「例外」(単一インスタンスの変更) の方が簡単です。

SQL/NoSQL? スケール詳細

プロジェクトで PostgreSQL を使用していますが、NoSQL データベースの基本的な知識があり、この種の問題により適している場合は使用できます。

規模: 5,000 人のユーザーがいて、それぞれが週に平均 150 のイベントを持ち、その 40% が「例外」であるとします。したがって、私はこのシステムを効率的に設計したいと考えています。

同様の質問とその他のリソース

Martin Fowler の「Recurring Events for Calendars」( http://martinfowler.com/apsupp/recurring.pdf ) を読み始めたばかりですが、それが私の問題に当てはまるかどうか、また当てはまる場合はデータベースをどのように設計するかはわかりませんこのドキュメントに従ってスキーマを作成します (提案を歓迎します)。

同様の質問がありますが、「例外」(他のイベントに影響を与えずに 1 つのイベント インスタンスを変更すること) についての言及は見当たりませんでしたが、おそらく誰かがこれらのリンクを役に立つと思うでしょう:

問題をうまく説明したかったので、長い質問で申し訳ありません。それでも、それはかなり混沌としているように感じます。追加の質問があれば、喜んで詳細を提供します. 繰り返しますが、可能なデータベース/スキーマ設計のアイデアとその他の提案について聞きたいです。ありがとうございました!

0 投票する
1 に答える
74 参照

recurring-events - 毎週月曜日、火曜日、金曜日の sheql 式

このリンクの表記を使用して定期的なイベントを表すことにしました。

しかし、毎週月曜日、火曜日、金曜日の sheql 式がわかりませんでした。単一の式で表現できますか?

0 投票する
2 に答える
1493 参照

outlook - プログラムで ical を使用して定期的なセットから単一のイベントを削除する方法は?

10,11 日に定期的なイベントを作成しました。以下を参照してください。10 番目のイベントを削除したいので、MEthod: Cancel を使用しましたが、UID が同じであるため、両方のレコードが削除されています。1 つのレコードのみを削除するには、UID などの他の値を使用する必要がありますか?

イベントコードをキャンセル:

0 投票する
2 に答える
5245 参照

java - Java Time (java.time または任意の時間ライブラリ) を使用した定期的なイベント

私は非常に単純な繰り返しパターン (x 日または週ごと) を使用して、Java で繰り返しイベントをモデル化しています。のイベント オブジェクトとstartDateTimeendDateTime日単位の繰り返し (java.time パッケージの型を持つPeriod) を指定すると、(DST を考慮して) 特定の日付にイベントが発生するかどうかを調べたいと考えています。

「DSTを考慮に入れる」ことに関するいくつかの背景(コメントでのリクエストの後):

  • イベントは、従業員の勤務シフトをスケジュールするために使用されます。
  • 従業員は 24 時間年中無休でシフト制 (通常は 8 時間勤務) で働いています。
  • 夜勤は0:00に始まり、8:00に終わります。したがって、DST が変更されると、シフトは 7 時間または 9 時間のいずれかになります。いかなる状況においても、ギャップがあってはなりません。

私は現在、それほどパフォーマンスの悪い方法でこれを行っています:

次のイベントの場合

を呼び出すとincludes、次の結果が生成されます。

これを行うためのパフォーマンスの高い方法は何ですか (前述のように、DST を考慮して)? カレンダーにもイベントを表示したいです。

更新:重複の可能性は、上で使用したのとまったく同じアルゴリズムを使用します。すべての日付をループせずにこれを行うより速い方法はありますか?

0 投票する
1 に答える
145 参照

date - 特定の現地日のすべてのタイムゾーン ユーザーの定期的なイベントを管理する方法は?

iOS 用のスケジューラとカレンダーに依存するイベント アプリケーションを開発しようとしています。イベントとユーザーの詳細を保存するためにオンラインデータベース(解析データベース)を使用します。

詳細:

  • 1 人のユーザーが特定の日 (つまり、特定の日付から 5 週間の毎週月曜日) のイベントを作成し、他のユーザーをイベントに招待します。

  • イベントはすべてのユーザーに対して定義された日にのみアクティブになります。つまり、イベント日が月曜日の場合、イベントはすべてのユーザーの月曜日 (現地時間) の月曜日にのみアクティブになります。

質問: 現地時間でユーザーのイベントがアクティブかどうかを確認する方法を教えてください。desc : イベント日が金曜日 (2016 年 1 月 1 日) の場合、イベントは金曜日 (2016 年 1 月 1 日) のみすべてのユーザーに対してアクティブになります。つまり、ユーザーのローカル時間が金曜日 (2016 年 1 月 1 日) の場合、イベントはこのイベントに対してアクティブになります。ユーザー。他のすべてのユーザーについても同様です。

サーバーデータベースでこれを維持し、ユーザーにイベントが今日アクティブであることを通知する方法は? 私は解析データベースを使用しており、このすべてのロジックは Cloud Code を使用して解析に実装されます。

編集:UTCタイムゾーンに従ってイベントをアクティブにしようとしました。上記の例では、イベントは 1/1/2016 00:00:00.000Z でアクティブになり、2/1/2016 00:00:00.000Z で終了します。これは UTC+00 のユーザーに当てはまりますが、UTC+5:30 のユーザーの場合、イベントは 2016 年 1 月 1 日 05:30:00 にアクティブになり、2016 年 2 月 1 日 5:30:00 に終了します。ただし、イベントは 2016 年 1 月 1 日 00:00:00 から 2016 年 2 月 1 日 00:00:00 の間のみアクティブにする必要があります。タイムゾーンが異なるすべてのユーザーで同じ問題が発生します。