如何在C#中检查某一天的时间

时间:2013-07-09 20:02:52

标签: c#

我有一个程序,我不需要在星期六运行几个小时。如何编码以检查当前时间是否在周六1800到2100之间?我设置了日期时间,并且发现我可以先查看是否每天周六= 6,然后检查时间是否在这些时间之间,但我想知道是否有人知道更好的方法?

谢谢!

2 个答案:

答案 0 :(得分:5)

if ((DateTime.Now.Hour >= 18 && DateTime.Now.Hour <= 21) && DateTime.Now.DayOfWeek == DayOfWeek.Saturday)
{
    //it is between 6 and 9pm on saturday
}

或者我们可以反转整个事情并检查其他任何时间,但那些时间

if (!((DateTime.Now.Hour >= 18 && DateTime.Now.Hour <= 21) && DateTime.Now.DayOfWeek == DayOfWeek.Saturday))
{
    //it is NOT between 6 and 9pm on saturday
}

编辑,或者如果您想对此进行优化并确保没有时间超过检查,即。进入或离开时间段,您可以这样做:

DateTime dt = DateTime.Now;

if ((dt.Hour >= 18 && dt.Hour <= 21) && dt.DayOfWeek == DayOfWeek.Saturday)
{
    //it is between 6 and 9pm on saturday
}

或者我们可以反转整个事情并检查其他任何时间,但那些时间

if (!((dt.Hour >= 18 && dt.Hour <= 21) && dt.DayOfWeek == DayOfWeek.Saturday))
{
    //it is NOT between 6 and 9pm on saturday
}

答案 1 :(得分:0)

使用c#

的DateTime库
DateTime date = DateTime.Now;
TimeSpan startTime = new TimeSpan(18, 00, 00);
TimeSpan endTime = new TimeSpan(19, 00, 00);
if (date.DayOfWeek.Equals(DayOfWeek.Saturday) && 
                  date.TimeOfDay >= startTime && 
                  date.TimeOfDay <= endTime )
    //Do the operation that you want