2013-04-30 142 views
0

我想編寫一個程序,當它執行的時候會檢查系統時間,如果系統時間是......在下午5點到8點之間(或者17點到20點之間),它會運行一個命令否則它會退出。如果程序在特定時間運行,運行命令?

我比我想我會想出如何做到這一點更難。所有我找到了到目前爲止,我可以從

DateTime.Now 

得到一個可讀的輸出的當前日期和時間,但我不知道我怎麼可以訂購程序取決於一天中什麼時間運行命令它是(不管日期),並使用DateTime.Now獲得時間,然後玩弄字符串,直到它給了我一個雙倍或整數的時間,它似乎是一個相當「不酷」的做法

+3

你可能會考慮使用其他工具來完成你想要的東西,就像在Windows任務調度,或在* nix系統的cron。 – jpw 2013-04-30 11:13:14

+0

您可能需要考慮只爲此使用OS調度程序。您可以將其設置爲每天在特定時間運行應用程序。否則卡洛斯的答案是正確的。 – kenny 2013-04-30 11:13:37

+0

誰觸發程序的執行? – 2013-04-30 11:14:28

回答

3

它會是這樣的,例如檢查當前小時是否在17和20之間。 只需更改值:

if (DateTime.Now.Hour > 17 && DateTime.Now.Hour < 20) 
{ 
    //Do stuff 
} 

編輯:如果您想包括在if語句利用小時數> = < =

if (DateTime.Now.Hour >= 17 && DateTime.Now.Hour <= 20) 
{ 
    //Do stuff 
} 
+0

謝謝。這工作完美。 – Rabcor 2013-04-30 11:14:08

+1

其實這隻會在下午6點和晚上8點之間工作。你想''= 17' – AlexFoxGill 2013-04-30 11:15:03

+0

是的。我正在編輯它。也許他需要包括那個小時。 – 2013-04-30 11:16:50

0

如果你需要的時間更精細的控制,如包括在你的「窗口」分鐘,然後使用兩個時間跨度的是這樣的:

TimeSpan start = new TimeSpan(17, 30, 0); // 5:30 pm 
TimeSpan stop = new TimeSpan(20, 45, 0); // 8:45 pm 
if (DateTime.Now.TimeOfDay >= start && DateTime.Now.TimeOfDay <= stop) 
{ 
    // ... do something ... 
}