检查日期时间的工作日是否在2个日期时间值之间

时间:2013-03-13 10:21:16

标签: .net datetime dayofweek

我想看看其他人如何在.Net中解决这个问题

情景:我想查看 if the current datetime (Now()) is > Monday 6:00AM and < Friday 10:00PM

2 个答案:

答案 0 :(得分:1)

您的方案可以通过两种方式解释:

1.您想检查当前日期是在星期一到星期五之间,以及当前时间是否在6:00到21:59之间。如果是这种情况,您可以使用以下功能:

bool DateIsInValidRange(DateTime date)
{   
    if(date.DayOfWeek == DayOfWeek.Sunday || date.DayOfWeek == DayOfWeek.Saturday) {
        return false;
    }

    if(date.Hour < 6 || date.Hour >=22) {
        return false;
    }

    return true;
}

2.你想检查一个简单的日期范围(也就是说,只要它不是星期五,23:00就可以了,只要它不是星期一,5:00就可以了)。在那种情况下:

bool DateIsInValidRange(DateTime date)
{   
    if(date.DayOfWeek == DayOfWeek.Sunday || date.DayOfWeek == DayOfWeek.Saturday) {
        return false;
    }

    if(date.DayOfWeek == DayOfWeek.Monday && date.Hour < 6) {
        return false;
    }

    if(date.DayOfWeek == DayOfWeek.Friday && date.Hour >= 22) {
        return false;
    }

    return true;
}

对于当前时间,请将其调用为:

bool isInValidRange = DateIsInValidRange(DateTime.Now);

答案 1 :(得分:0)

   bool CheckDay(DayOfWeek start,DayOfWeek End, DayOfWeek toCheck)
   {
  if (start <=max)
    return toCheck >=start && toCheck<=End;

return toCheck >=start || toCheck <=End
  }