-2

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

谢谢!

4

2 回答 2

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
}
于 2013-07-09T20:08:36.320 回答
1

使用 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
于 2013-07-09T20:27:10.940 回答