C#比较两个时间间隔之间的时间

Nil*_*Pun 2 c# datetime c#-4.0

尝试比较两次之间的给定时间,看它是否在这些间隔内.例如,如果给定时间是00:00,我需要知道它是否在21:00:00到7:00之间.尝试TimeSpan.Compare没有锁定,也使用>或<时间部分.

例如给定间隔:

7:00:00 to 19:00:00
19:00:00 to 21:00:00
21:00:00 to 7:00:00
Run Code Online (Sandbox Code Playgroud)

时间比较:

00:00:00和01:00:00

任何帮助将不胜感激.

更新的问题:

看起来要求很安静含糊.要求基本上是通过时间(TimeSpan)并与两个TimeSpan间隔进行比较,以查看它们是否落入这些间隔.

例如,如果员工在下面的不同时段工作,我们会说他们获得不同的津贴:

日期范围:2012-01-01至2012-31

19:00:00 to 21:00:00 ($10.00)
21:00:00 to 7:00:00 ($11.00)
7:00:00 to 19:00:00 ($12.00)
Run Code Online (Sandbox Code Playgroud)

要计算员工的小时费率,我需要检查员工是否工作

  1. 日期范围:2012-01-01至2012-31
  2. 在时间范围之上.

并相应地应用$ Rate.

RJ *_*han 8

你可以自己写一个扩展方法,如;

public static class TimeExtensions
{
    public static bool IsBetween(this DateTime time, DateTime startTime, DateTime endTime)
    {
        if (time.TimeOfDay == startTime.TimeOfDay) return true;
        if (time.TimeOfDay == endTime.TimeOfDay) return true;

        if (startTime.TimeOfDay <= endTime.TimeOfDay)
            return (time.TimeOfDay >= startTime.TimeOfDay && time.TimeOfDay <= endTime.TimeOfDay);
        else
            return !(time.TimeOfDay >= endTime.TimeOfDay && time.TimeOfDay <= startTime.TimeOfDay);
    }
}
Run Code Online (Sandbox Code Playgroud)