DateTime cast/magic

Vac*_*ano 0 c# datetime

有没有一种简洁的方法在C#中编写这个逻辑?

if ((DateTime.Now >= "8:00 AM") && (DateTime.Now < 5:00 PM))
{// do something}
Run Code Online (Sandbox Code Playgroud)

我正在制作一个演示应用程序,我希望在工作日发生一些事情,但我不希望这些代码突出很多(很多演员=坏).(因为我希望我的演示内容更容易看到.

Jon*_*eet 11

好吧,你可以这样做:

DateTime now = DateTime.Now;
if (now.Hour < 8 || now.Hour >= 17)
Run Code Online (Sandbox Code Playgroud)

请注意,我通常更喜欢只使用一次DateTime.Now属性,将结果复制到如上所述的局部变量中 - 这样,由于调用之间的时间变化,您不会得到奇怪的可能性.这里不是问题,但可能在其他情况下.

另一种可能性是使用,DateTime.TimeOfDay如果你想以这种方式处理事情.我认为上面的内容就像它获得的一样简单.

编辑:史蒂文指出我将原始逻辑中的&&更改为|| - 你的原始逻辑永远不会工作,因为它永远不会在上午8 点之前下午5 点之后.上述工作适用于"如果不是在工作日" - 如果您想要"如果它在工作日",您只需要:

DateTime now = DateTime.Now;
if (now.Hour >= 8 && now.Hour < 17)
Run Code Online (Sandbox Code Playgroud)