【问题标题】:Check if the weekday of a datetime is between 2 datetime values检查日期时间的工作日是否在 2 个日期时间值之间
【发布时间】:2013-03-01 05:22:47
【问题描述】:

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

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

【问题讨论】:

    标签: .net datetime dayofweek


    【解决方案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);
    

    【讨论】:

    • 抱歉,我特别想检查 Now() 是否介于(周一早上 6 点)和(周五晚上 10 点)之间
    【解决方案2】:
       bool CheckDay(DayOfWeek start,DayOfWeek End, DayOfWeek toCheck)
       {
      if (start <=max)
        return toCheck >=start && toCheck<=End;
    
    return toCheck >=start || toCheck <=End
      }
    

    【讨论】:

    • 抱歉,只是在标签中想到了SQL
    猜你喜欢
    • 2018-07-26
    • 1970-01-01
    • 2012-05-27
    • 2022-07-21
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多