【发布时间】:2012-01-16 16:19:59
【问题描述】:
我正在尝试构建一个工具,该工具可以根据员工计划工作的时间和他们要求下班的时间来计算称为配额的东西。
我的 ShiftSet 对象是一组 Shift 对象,由 StartTime 和 EndTime 组成(均为 time(7) 类型。每个 ShiftSet 对应于一天。
ScheduleExceptions 是员工休假的时间。一天中可以有任意数量的重叠或不重叠的 ScheduleExceptions。它们属于日期时间数据类型。
ShiftSet 示例:
08:00-10:00
10:00-12:00
13:00-15:00
15:00-17:00
同一天的 ScheduleExceptions 示例:
07:30-10:30
14:35-16:00
我需要做的是找出员工一天工作的时间。我能想到的方法是计算 ShiftSet 的交集和 ScheduleExceptions 的倒数。
我将如何处理时间?如果可能,我更喜欢使用 Linq。
【问题讨论】:
-
请问c#中的
time(7)类型是什么? -
在 sql 中是时间,但在 c# 中是时间跨度。
-
您需要查找总时间,还是要查找员工工作的实际开始/结束时间?
-
您想找到某人一天工作的所有小时数的总和。在您上面的示例中,这将是
8h - 4h25m = 3h35m? -
你说你使用时间跨度,但你提到时间(即,
DateTime是合适的)。我TimeSpan没有开始和结束,只有一段时间。
标签: c# asp.net linq entity-framework