我每天都让员工打卡上班,有时他们第二天还在工作,没有休息。
我需要的是没有休息,午夜结束的员工的总小时数。
例如
| 工作人员|开始|完|
| - ------|- ------|- ------|
| 工作人员A|上午9时|下午3点|
| 工作人员A|下午3点|晚上10点|
| 工作人员A|晚上10点|* * 上午12:00**|
| 工作人员B|上午3时|晚上9点|
| 工作人员B|晚上10点|* * 上午12:00**|
| 工作人员C|上午3时|晚上9点|
| 工作人员D|晚上10点|* * 上午12:00**|
在上表中,两名员工都在午夜完成工作。
员工A工作了15个小时,没有任何休息。但员工B在晚上9点到10点之间休息。
预期结果:
| 工作人员|共计|
| - ------|- ------|
| 工作人员A|十五|
| 工作人员B|第二章|
| 工作人员C|0,因为他午夜还没完成。|
| 工作人员C|第二章|
我尝试了for循环,但是失败了,因为每个员工有不同的条目数,代码在最后变得混乱。
我尝试了LINQ和加入同一个表等,但无法弄清楚。
这个网站是我最后的选择。
事先谢谢你的帮助。
1条答案
按热度按时间vq8itlhq1#
好的,如果你需要跨日期或多个日期的工作段,这个答案需要更多的工作。这里假设所有的工作段都在同一天。
以下代码按员工对所有段进行分组,然后将每个段的总分钟数相加。然后,仅当最后一个段在午夜结束时才返回总分钟数。
此测试代码返回以下内容:
下面是代码: