2011-12-08 72 views
0

我的應用需要用戶安排每日,每週,每月或每兩週重複發生的事件。如何安排雙週工作?

每兩週,我的意思是每兩週(14天)從創建時提供的任意日期值開始。

我的jobs表有兩列支持:job_frequency_idjob_frequency_value。我可以安排除雙週以外的所有類型。

第一列是FK到job_frequencies表;它包含daily, weekly, monthy, bi-weekly值。 job_frequency_value包含對應於頻率的值。

例如:如果工作有job_frquency_id == 3job_frequency_value == 10,它將在每個月的第10天運行。

如何在不篡改數據庫結構的情況下添加雙週支持?我將使用job_frequency_value列來存儲14天期限的開始日期,但我不確定未來的計算。

+0

哪一天你在考慮本週的第一個和最後一個?您希望如何處理在一週中開始的月份?在這種情況下,第一個「星期」是否僅僅是一週之前的剩餘時間(所以,如果一個月在星期四開始,而星期六是一週的最後一天,那麼第一週將被視爲週四至週六的天數)?或者,您是否想考慮將本月的第一天作爲第一週的開始,並且以後的每一週都只是下一個7天的時間間隔? –

+0

@Jake,正如我在下面提到的,我認爲我已經對我的問題做了一個整理。爲什麼我真的需要的是一種每週做一些事情的方式,而不篡改數據庫結構。使用我現有的專欄很容易,每天,每月和每週安排一些事情。我無法弄清楚如何每週進行一次。 – Mohamad

+0

@Jake,我相應地更新了我的問題。 – Mohamad

回答

2

假設您的起始日期存儲爲名爲'createdDate'的變量。

nextFortnight = DateAdd("ww", job_frequency_value*2, createdDate); 
+0

順便說一句 - 我已經離開了這個簡潔,因爲我無法真正地告訴你的請求的上下文。如果你解釋一下你需要如何使用這種頻率邏輯,我可以擴展這個例子使它更有用。 –

0

你可以把你的計劃任務包裝在一個並設置它每週運行?如果

喜歡的東西

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

這樣的周奇計劃任務完全運行,如果它是一個奇怪的一週,然後在運行計劃的任務,但忽略了所有的代碼。