DateTime直接比大小:
            DateTime now = DateTime.Now;
            DateTime old = DateTime.Now - new TimeSpan(1, 0,0,0);
            DateTime later = DateTime.Now + new TimeSpan(1, 0, 0, 0); ;
            Assert.IsTrue(now > old);
            Assert.IsTrue(now < later);

解决方案 »

  1.   

    A每天晚上的20:00:00 
    就是TimeSpan(20,0,0)第二天的早上的:08:00:00
    就是TimeSpan(24+8,0,0)前时间凌晨的02:00:00 
    就是TimeSpan(2,0,0)  or TimeSpan(24 + 2,0,0)  
    *****************************************************************************
    签名档: http://feiyun0112.cnblogs.com/
      

  2.   

    最简单的:DateTime now = DateTime.Now;
    if(now.Hour < 8 || now.Hour > 20))
    {
    }
      

  3.   

    一天中的时间可以用TimeSpan来表示,比如DotNet的TimeOfDay:
    TimeSpan ts = DateTime.Now.TimeOfDay;而TimeSpan可以直接比较。static bool InBetween(TimeSpan begin, TimeSpan end, TimeSpan toCheck)
    {
        if (begin.TotalDays > 1 || end.TotalDays > 1 || toCheck.TotalDays > 1)
        {
            throw new Exception("Not a valid time of a day");
        }
        // 如果起始时间晚于结束时间,反转结果
        return (begin <= toCheck && toCheck <= end) ^ (begin > end);
    }static void Test()
    {
        TimeSpan begin = TimeSpan.FromHours(20);
        TimeSpan end = TimeSpan.FromHours(8);
        TimeSpan toCheck = TimeSpan.Parse("02:00:00");    bool inbetween = InBetween(begin, end, toCheck); // true
    }
      

  4.   

    下午13:00:00的时候应该为false的 何解也为true呢
      

  5.   

    (23 - 20 + 8)%23==11 ((23-开始时间+结束时间)%23)(23-当前时间 + 结果时间)%23 <=11者为时间范围内,反之False假设开始时间为1,结果时间为13
    (23-1 + 13)%23=12现在时间为5
    (23-5+13)%23=8  结果<=12,在范围内现在时间为14点
    (23-14+13)%23=22 结果>12 不在范围内当前时间为23点
    (23-23+13)%23=13 结果>12 也不在范围内===========》
    设置开始时间为0点,结果时间为2点
    (23-0+2)%23=2当前时间为1
    (23-1+2)%23=1 结果<=2,在范围内
    当前时间为3
    (23-3+2)%23=22 结果>2,不在范围内
    当前时间为20
    (23-20+2)%23=5 结果>2,不在范围内
      

  6.   

    check Today  8:00~20:00 
    !dateTimeRange.Contains(c)
      

  7.   

    你只要计算 大于20点 或小于8点就行了,不用管日期
    if(DateTime.Now.Hour < 8 || DateTime.Now.Hour > 20))
    {
    }
      

  8.   


    那时因为我的代码里的逻辑错误,可以更改为如下():static bool InBetween(TimeSpan begin, TimeSpan end, TimeSpan toCheck)
    {
        if (begin.TotalDays > 1 || end.TotalDays > 1 || toCheck.TotalDays > 1)
        {
            throw new Exception("Not a valid time of a day");
        }    if (begin <= end) return begin <= toCheck && toCheck <= end;
        else return begin <= toCheck || toCheck <= end;
    }