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

标签 c# c#-4.0 datetime

尝试比较两个时间之间的给定时间,看它是否在这些时间间隔内。例如如果给定时间是 00:00,我需要查明它是否在 21:00:00 到 7:00:00 之间。尝试了 TimeSpan.Compare 没有锁定,并且还使用 > 或 < 作为时间部分。

例如 给定间隔:

7:00:00 to 19:00:00
19:00:00 to 21:00:00
21:00:00 to 7:00:00

比较时间:

00:00:00 and 01:00:00

任何帮助将不胜感激。

更新问题:

看起来要求很模糊。要求基本上是传递时间 (TimeSpan) 并与两个 TimeSpan 间隔进行比较,看它们是否落入那些间隔。

例如假设员工在以下不同时间段工作,他们将获得不同的津贴:

Date Range: 2012-01-01 to 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)

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

  1. Between Date Range :2012-01-01 to 2012-31
  2. Between Time Range above.

并相应地应用 $ Rate。

最佳答案

您可以自己编写一个扩展方法,例如;

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);
    }
}

关于C# 比较两个时间间隔之间的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10631044/

相关文章:

c# - 寻求处理具有重叠字段的结构构造函数的最佳方法

c# - 关于 DLR (.NET 4.0 beta 1) 的最佳信息来源是什么?

.net - 如何查找两个日期/DateTimePicker 之间的天数

spring-mvc - 将Unix时间戳转换为Java日期,Spring RequestParam

c# - File.Move 不起作用 - 文件已存在

c# - 是否可以将 ASP.NET 成员资格与在 ASP.NET Identity 2.0 中创建的表一起使用以进行身份​​验证?

javascript - 如何使用 Javascript 调用 C# 类方法?

php - 当我在我的网站上发帖时,mysql 只显示零

c# - 如何在 C# 中获取服务器和客户端之间的延迟?

c# - 如何使用json.net(JObject/Jarray/Jtoken)并以最快的方式将类转换为字典?