問題タブ [recurrence]
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.
outlook - イベントの ICalendar エクスポートを実装する際、どのクライアントをターゲットにする必要がありますか?
http://en.wikipedia.org/wiki/ICalendar
イベントのエクスポート機能の実装に取り組んでいます。上記のリンクには、ICalendar 標準をサポートする多数のクライアントがリストされていますが、私が見ることができる「3 つの大きなもの」は、Apple の iCal、Microsoft の Outlook、および Google の Gmail です。
これらのクライアントのそれぞれが「標準」のさまざまな部分を実装しているように感じ始めており、誰かがカレンダーに追加できるように、アプリケーションからどの情報をエクスポートしようとしているのかわかりません(特に再発の周り)。
たとえば、私が理解していることから、Outlook は 1 時間ごとの繰り返しをサポートしていません。
機能の実装の観点から、ここで「幸せな媒体」のガイダンスを提供してくれる人はいますか?
2 つ目の質問として、Outlook でサポートされていない機能 (時間ごとの繰り返しなど) をエクスポートから除外することにした場合、アプリケーションでもサポートする必要がありますか? (これは汎用のイベント スケジューリング アプリケーションであり、特定のビジネス用途を念頭に置いていません...そのため、私たちは本当に幸せな媒体を探しています)。
ruby - カレンダー アプリケーションで定期的なイベントをモデル化する最良の方法は何ですか?
定期的なイベントをサポートする必要があるグループ カレンダー アプリケーションを構築していますが、これらのイベントを処理するために思いついたソリューションはすべてハックのようです。どれだけ先を見ることができるかを制限し、すべてのイベントを一度に生成できます。または、イベントを繰り返しとして保存し、カレンダーを先に見たときに動的に表示することもできますが、イベントの特定のインスタンスの詳細を変更したい場合は、通常のイベントに変換する必要があります。
これを行うためのより良い方法があると確信していますが、まだ見つけていません。特定のイベント インスタンスの詳細を変更または削除できる定期的なイベントをモデル化する最良の方法は何ですか?
(私は Ruby を使用していますが、それがあなたの答えを制限しないようにしてください。Ruby 固有のライブラリなどがある場合は、知っておくとよいでしょう。)
recursion - マスター定理を使用して再帰を記述するにはどうすればよいですか?
最近、再帰について勉強しています。再帰と再帰は同じものだとしばらく考えていましたが、最近の宿題や小テストの問題で、「再帰」が方法であるというわずかな違いがあると思いました。再帰的なプログラムまたは関数を記述します。
問題やプログラムの「再帰」を記述するために使用される「マスター定理」と呼ばれるものがあることに最近気付くまで、これはすべて私にとって非常にギリシャ語でした。ウィキペディアのページを読んでいるのですが、いつものように、何を言っているのかよくわからないような言葉遣いで書かれています。私は例を使ってはるかによく学びます。
いくつかの質問があります: この繰り返しが与えられたとしましょう:
r(n) = 2*r(n-2) + r(n-1);
r(1) = r(2) = 1
これは実際、マスター定理の形をとっているのでしょうか? もしそうなら、それは言葉で何を言っているのですか?この再帰に基づいて小さなプログラムまたは再帰ツリーを作成しようとすると、どのようになりますか? 数値を代入してパターンを確認し、そのパターンを再帰的に作成できる疑似コードを作成するだけでよいでしょうか、それともマスター定理の形式である可能性があるため、より簡単な数学的アプローチはありますか?
ここで、前回の再帰から作成されたプログラムによって実行された追加の回数の再帰 T(n) を求めるよう求められたとします。基本ケースはおそらく T(1) = T(2) = 0 になることがわかりますが、そこからどこへ行くべきかわかりません。
基本的に、私は特定の繰り返しからコードに移行する方法とその逆を求めています。これはマスター定理のように見えるので、簡単で数学的な方法があるかどうか疑問に思っています。
編集:さて、過去の課題のいくつかを調べて、「再発を見つける」ように求められた別の例を見つけました。これは、投稿の問題を抱えているこの質問の一部です。
次のプログラム フラグメントの加算演算の数を最適な方法で記述する再帰 (l == 1 および r == n で呼び出した場合)
sql - ファウラーの時間式のリレーショナル スキーマ
Martin Fowler は、ここで繰り返しタスクのスケジューリングのための洗練されたオブジェクト モデルを定義しています。これは、OO コードに非常にうまく対応しています。ただし、永続化のためにこれをリレーショナル データベース スキーマにマッピングするのは難しい作業です。
特に11ページの画像で、彼が説明するすべての機能をカプセル化するスキーマとSQLの組み合わせを誰かが提案できますか.交差と結合はかなり明白です-複雑さは、可変パラメータを取り、解釈する必要がある「時間式」を表すことにあります.それらを組み合わせて「時間セット」にします。
明確にするために、リレーショナル データベースで定期的なイベントの概念を表す方法は多数あります。この特定のモデルをどのようにマッピングするかについて、皆さんに意見を求めたいと思います。
いくつかの可能なオプション:
- 引数の数と使用を定義する「メタ」テーブル。醜いですが、おそらく動作します。ただし、'Temporal Expression' フォームの数は限られている可能性が高いため、これが提供する極端な柔軟性はおそらく多すぎます。
- Postgres (およびおそらくその他の) RBMS でサポートされている、何らかの形式のテーブル継承。
パラメータリストをシリアル化し、結果を varchar() に保存することは、その方法がセットベースのクエリを防ぐため、解決策ではありません:)
.net - 定期的なジョブまたはタスクの実行時間を指定する最良の方法は何ですか?
明示的な実行時間をデータストアに書き込むことなく、定期的なジョブの実行時間を効率的に指定する方法を探しています。言い換えれば、「次のジョブ x は 11.12.08 の午後 13 時に実行されます」と言って、ジョブが実行されたら次の週の実行時間を更新しなければならないのではなく、「ジョブ x は次の時間に実行されます」と言うことができるようにしたいのです。毎週木曜日の午後13時。数分から 1 か月に 1 回まで、繰り返しの範囲を指定できる必要があります。私の推測では、再発期間が短いほど、これは難しくなります。何か案は?
注: スケジューリングメカニズムに関するアドバイスを求めているわけではありません。Windows スケジューラ、Cron を使用したり、Windows サービスを作成したりできません (ASP.NET でバックグラウンド スレッドを使用するしかありません)。
time - 繰り返し発生する可能性のある時間をどのように保存しますか?
何かが 1 回、毎日、平日、毎週、何曜日、何日か、数値または記号 (毎月の最初の月曜日など) のいずれで発生するかを保存する必要があります。
推奨事項はありますか?確認するコード、データ構造、またはスキーマはありますか?
java - 最高のJava日付繰り返しパターン計算機は何ですか
(信頼できる) 日付の繰り返し計算機を知っている人なら誰でも、Outlook での定期的な会議と同様に、スケジュールを作成できるようにする何かをアプリに実装しようとしています。クロノスを試してみましたが、故障するケースがいくつか見つかりました。他のオプションをうまく使用した人がいるかどうかを知っていただければ幸いです.
乾杯、ロビン
calendar - 繰り返しルール定義 (RFC2445) の質問
繰り返しルールにGoogle の RFC2445 実装 ( http://code.google.com/p/google-rfc-2445/ ) を使用しています。1 月 30 日に始まる MONTHLY 繰り返しを定義すると、30 日未満の月 (つまり 2 月) は完全にスキップされます。したがって、Google API は 1 月 30 日、3 月 30 日、4 月 30 日などを返します。良くありません。1月30日、2月28日、3月30日、4月30日に戻ってくると思います。
同様に、1 月 31 日の開始日を選択した場合、31 日未満の月はスキップされます。
これは、RFC2445 仕様に従って正しいか、バグである可能性があります。どう思いますか?
私の主な質問は、「毎月 30 日に繰り返す、または 30 日が存在しない場合は月末」というルールを定義する方法はないかということです。私はあるとは思わない。助言がありますか?
前もって感謝します。
よろしく、コーマック
php - PHPカレンダーの繰り返しロジック
すでにこれを行っているプロジェクトが100万あることを私は知っています。私がやろうとしているのは、PHPとMySQLを使用してオンラインカレンダーを作成することだと言っていますが、これが私が計画していることです。
データベース内のテーブル
/li>基本的なフロー、データベースからすべてのレコードをプルしますINNERJOINcalendar_itemおよびcalendar_item_exceptionONid / calendar_item_id
例外の今日の日付を確認することから始めて、そこにあるものをすべて印刷します...calendar_itemに何も移動しない場合。
これはすべて、この時点まで私の頭の中で完全に理にかなっています。recurrence_idの実際のロジックを追加するためにここからどこに行くべきか、そしてそれを実装する方法を知りたいです:
つまり、アイテムは__dateにありますrecurs(recurrence_id)毎日(数量)5x(間隔)3日ごと(join_calendar_day)月曜日、水曜日、金曜日
私はical形式を見て、PEARを調べましたが、例外を作成するための次のステップを正直に把握できません(別のフレームワーク、できればPHPとMySQLだけを使用せずに発生することを本当に望んでいます)。
私の質問をさらに明確にするために、私は抽象的な原則ではなく、実際の例を探しています。私はプログラマーではないので、何かが機能しているのを見て、それを分析して理解できるようにする必要があります。
PEAR、Ruby、Horde、その他のフレームワークはなく、PHPとMySQLだけで、できるだけシンプルにしてください。
ruby - 定期的なイベントで競合を検出する
定期的なエントリ間の競合をチェックする必要があるカレンダー アプリケーションを作成しています。各 Entry オブジェクトには、範囲の配列を返す recurrences() メソッドがあります。各範囲には、将来の各発生の開始時刻と終了時刻が含まれています。
新しいエントリと既存のエントリの競合を確認する必要があります。これを行うには、新しいエントリの将来の発生が既存のエントリの将来の発生と衝突しないことを確認します。
recurrences() のデフォルトでは、開始時刻から開始時刻 + 1 年までのすべての発生を返します
問題は、この方法があまり効率的でないことです。それぞれが 1 年以上毎日繰り返される 2 つのエントリだけを比較すると、365 * 365 の比較になります (私のマシンでは 4 秒以上かかります)。新しいエントリを比較する既存のエントリがいくつもある可能性があるため、現在の方法は役に立ちません。
私はコンピューター サイエンスや数学のバックグラウンドを持っていませんが、アルゴリズムに関するさまざまな教科書を読んでいますが、メソッドを最適化する方法を見つけることができませんでした。他に何かアイデアはありますか?
ありがとう
デイブ