2013-04-30 99 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 ... 
}