2011-12-08 12 views
0

私のアプリでは、毎日、毎週、毎月、または隔週に再発する可能性のある定期的な予定をユーザーがスケジュールする必要があります。隔週のジョブをスケジュールするにはどうしたらいいですか?

隔週では、作成時に指定された任意の日付値から2週間ごと(14日ごと)を意味します。

My jobsテーブルには、これをサポートする2つの列、job_frequency_idjob_frequency_valueがあります。私は毎週隔週を除くすべてのタイプをスケジュールすることができます。

最初の列はFKからjob_frequenciesのテーブルです。値はdaily, weekly, monthy, bi-weeklyです。 job_frequency_valueには、周波数に対応する値が含まれています。

例:ジョブにjob_frquency_id == 3job_frequency_value == 10がある場合、そのジョブはその月の10日ごとに実行されます。

DB構造を改ざんせずに隔週サポートを追加するにはどうすればよいですか? job_frequency_value colを使用して14日間の開始日を保存しますが、今後の計算はわかりません。

+0

あなたは週の最初と最後のどちらの日を検討していますか?あなたは一週間中に始まる月をどのように扱うことを好むでしょうか?その場合、最初の「週」は曜日の最後の曜日まで残るだけです(月が木曜日に開始し、土曜日が最後の曜日だった場合、最初の週は木曜日から土曜日までの日数)?または、今月の最初の日を最初の週の初めとみなし、その後のすべての週をちょうど次の7日間の間隔と見なしたいでしょうか? –

+0

@Jake、私が下で述べたように、私は私の質問のハッシュを作ったと思う。私が本当に必要とするのは、db構造を改ざんすることなく、毎週何か別のことをする方法です。既存の列を使用して、毎日、毎月、毎週などのスケジュールを立てるのは簡単です。私は毎週バイバイのためにそれを行う方法を把握することはできません。 – Mohamad

+0

@Jake、私はそれに応じて私の質問を更新しました。 – Mohamad

答えて

2

開始日が「createdDate」という名前の変数として保存されているとします。

+0

ところで - 私は本当にあなたの要求の文脈を伝えることができないので、これを簡潔にしておきました。この周波数ロジックをどのように使用する必要があるかについて少し説明すれば、もっと役に立つように例を拡張することができます。 –

0

あなたはあなたのスケジュールされたタスクをaでラップし、毎週実行するように設定できますか?

<cfif DateDiff('ww',CreateDate(2011,01,01),Today'sDate) MOD 2 EQ 1>

よう

何かそのように数週間が奇数であれば、あなたのスケジュールされたタスクが完全に実行され、それが奇数週の場合、それがスケジュールされたタスクを実行しますが、すべてのコードを無視します。

関連する問題