【脚本】计算上班时间的算法

编程入门 行业动态 更新时间:2024-10-08 00:34:13

【脚本】计算上班时间的<a href=https://www.elefans.com/category/jswz/34/1770096.html style=算法"/>

【脚本】计算上班时间的算法

上班时间

所谓上班时间是指从上班到下班的时间里,能够被算作工时的那部分时间总和。

算法

从上班到下班之间至少有一个时间段是不算工作时间的,即中午的休息时间,一般是12:00-14:00,如果晚上有加班,则傍晚的16:00-19:00也不算工作时间。
而上班时间可以从一天之中的任何时段开始,需要根据不同的上下班情况来累积上班时间。

设定A为按起始顺序排序的、且任意两个区间没有时间交集的非工作时间段列表
设start,end分别为上下班的时间(以分钟为单位),则计算上下班的算法如下:

# 通过遍历跳过非工作时间进行工作时间的累加
calculate(A,start,end):if end < start:# 如果是次日凌晨下班,则需要调整分钟时间end = end + 24*60sum = 0error = Falsecompleted = Falsefor rangeTime in A:rangeStart,rangeEnd = rangeTime# validateif rangeEnd < rangeStart:error = Truebreakif start >= rangeStart:if end <= rangeEnd:# 没有更多有效区间completed = Truebreakif start < rangeEnd:start = rangeEndcontinueif end <= rangeStart:sum = sum + end - startcompleted = Truebreaksum += rangeStart - startstart = rangeEndif start >= end:completed = Truebreakif not error:if not completed and end >= start:sum = sum + end - startreturn sumreturn -1

更多推荐

【脚本】计算上班时间的算法

本文发布于:2024-02-27 20:17:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1766004.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法   脚本   上班时间

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!