2015-05-05 60 views

回答

0

僅有小商業邏輯,如下所示:對於每24小時

設定的時間間隔 timer.Interval = 60000 * 60 * 24; 然後檢查當前月份並獲取當前月份的天數,這樣您將獲得總天數,然後將總天數除以2,以便您有兩個日期 1)月份的最後一天即月份中的總天數 2)個月,即由2 檢查劃分爲當前日期與這兩天的中日如果是相等的,那麼去timeElapsed事件

{  
     this.serviceTimer.Elapsed += new ElapsedEventHandler  (this.serviceTimer_Click); 

} 

else 
{ 

do nothing 

} 
-1

在你serviceTimer_Click

{ 
    ... 
    DateTime nextExecute = DateTime.Now.AddMOnth(1); 
    timer.Stop(); 
    timer.Interval = (nextExecute - DatTime.Now).TotalMilliseconds; 
    timer.Start(); 
} 

而對於啓動它:

{ 
    ... 
    DateTime now = DateTime.Now; 

    DateTime firstExecute = new DateTime(now.Year, now.Month, 15); //add time if needed... 

    if (firstExecute < now) 
    { 
    firstExecute.AddMonth(1); 
    } 
    timer.Interval = (firstExecute - now).TotalMilliseconds; 

} 

沒有編制,但你的漂移......

編輯

談到漂移:避免你的執行漂流到稍後的時間點,您可以使用更巧妙的方式來構建nextExecute日期時間。

+1

downvoter謹慎解釋? –

相關問題