python编程工时计算_python 两个时间段过滤求交集(工时计算)
import time
# 输入的开始时间和结束时间
# start = "2020-01-03 10:00:00"
# end = "2020-01-03 13:30:00"
# start = "2020-01-03 12:00:00"
# end = "2020-01-03 13:30:00"
#
# start = "2020-01-03 12:10:00"
# end = "2020-01-03 13:00:00"
#
start = "2020-01-03 13:00:00"
end = "2020-01-03 18:00:00"
# 单个时间段过滤
# 要过滤出的时间段
standard_start = "2020-01-03 12:00:00"
standard_end = "2020-01-03 13:30:00"
# 将时间转换为时间戳方便下面 if 语句使用比较
startTimeStamp = int(time.mktime(time.strptime(start, "%Y-%m-%d %H:%M:%S")))
endTimeStamp = int(time.mktime(time.strptime(end, "%Y-%m-%d %H:%M:%S")))
standardStartTimeStamp = int(time.mktime(time.strptime(standard_start, "%Y-%m-%d %H:%M:%S")))
standardEndTimeStamp = int(time.mktime(time.strptime(standard_end, "%Y-%m-%d %H:%M:%S")))
# 定义一下 开始时间的差值和结束时间的差值,为了避免后面两个 if 语句匹配不上时,不能使用这两个变量
startDifferentTime = 0
endDifferentTime = 0
# 规定时间范围 也就是指 正常规定的工作时间
if(standardStartTimeStamp < startTimeStamp < standardEndTimeStamp):
# 说明开始时间在规定时间范围之外
startDifferentTime = standardEndTimeStamp - startTimeStamp
if(standardStartTimeStamp < endTimeStamp < standardEndTimeStamp):
# 说明结束时间在规定时间范围之外
endDifferentTime = endTimeStamp - standardStartTimeStamp
# 算出真正的工作时间 单位为 s
timeDifferent =(endTimeStamp - startTimeStamp) - (startDifferentTime + endDifferentTime) if (startDifferentTime + endDifferentTime) > 0 else (endTimeStamp - startTimeStamp) - 1.5 * 3600
# 判断一下 若真正工作时间 小于 0,则为 0,不小于 0,则为本身
timeDifferent = timeDifferent if timeDifferent>0 else 0
print(timeDifferent)
# 转换工作时间的单位
timeDifferentHour = (timeDifferent / (60*60))
print(timeDifferentHour)
# 多个时间段过滤
timeFilterList = [["2020-01-03 12:00:00","2020-01-03 13:30:00"],["2020-01-03 14:00:00","2020-01-03 16:30:00"]]
standardTimeStamp = 0
startTimeStamp = int(time.mktime(time.strptime(start, "%Y-%m-%d %H:%M:%S")))
endTimeStamp = int(time.mktime(time.strptime(end, "%Y-%m-%d %H:%M:%S")))
for i in timeFilterList:
startDifferentTime = 0
endDifferentTime = 0
standardStartTimeStamp = int(time.mktime(time.strptime(i[0], "%Y-%m-%d %H:%M:%S")))
standardEndTimeStamp = int(time.mktime(time.strptime(i[1], "%Y-%m-%d %H:%M:%S")))
if (standardStartTimeStamp < startTimeStamp < standardEndTimeStamp):
# 说明开始时间在规定时间范围之外
startDifferentTime = standardEndTimeStamp - startTimeStamp
if (standardStartTimeStamp < endTimeStamp < standardEndTimeStamp):
# 说明结束时间在规定时间范围之外
endDifferentTime = endTimeStamp - standardStartTimeStamp
standardTimeStamp = standardTimeStamp + (endDifferentTime + startDifferentTime) if (endDifferentTime + startDifferentTime) > 0 else standardTimeStamp + (standardEndTimeStamp - standardStartTimeStamp)
timeDifferent = endTimeStamp - startTimeStamp - standardTimeStamp
timeDifferent = timeDifferent if timeDifferent > 0 else 0
timeDifferentHour = (timeDifferent / (60*60))
print(timeDifferentHour)
原文链接:https://blog.csdn.net/jueji1998/article/details/112361249
python编程工时计算_python 两个时间段过滤求交集(工时计算)相关推荐
- python两数相加代码_一边学编程,一边学语数外,用python编程全排列10以内两数加法...
原标题:一边学编程,一边学语数外,用python编程全排列10以内两数加法 编程并不神秘 编程只是解决问题的一共方法 python是一门编程语言 python是一种解决问题的编程工具 在小学阶段,学习 ...
- Python实现“已知三角形两个直角边,求斜边”
用Python实现"已知三角形两个直角边,求斜边" 要求:用户输入两个直角边(数值为浮点类型),若非浮点类型,则提示用户,继续输入. 思路:伪代码描述下步骤 1.-input a ...
- python已知两条直角边求斜边,Python实现“已知三角形两个直角边,求斜边”
用Python实现"已知三角形两个直角边,求斜边" 要求:用户输入两个直角边(数值为浮点类型),若非浮点类型,则提示用户,继续输入. 思路:伪代码描述下步骤 1.-input a ...
- python编程求长方体体积_python编程求长方体体积_【Python编程特训连载80】答案公布:圆柱体体积计算...
80 [本期题目↓↓↓] 圆柱也称为圆柱体,是三维几何体的一种.一个圆柱所占空间的大小,叫作这个圆柱的体积.圆柱体积公式为: 其中,S 是底面积,h 是高,r 是底面半径.编写一个程序,用户输入底面半 ...
- python编程大数据_Python编程基础 Python大数据数据分析高职 计算机 软件技
内容介绍 本书采用以任务为导向的编写模式,全面地介绍了Python编程基础及其相关知识的应用,讲解了如何利用Python的知识解决部分实际问题.全书共7章,*1章介绍学习Python的准备工作,包括P ...
- python编程代码示例_python编程线性回归代码示例
用python进行线性回归分析非常方便,有现成的库可以使用比如:numpy.linalog.lstsq例子.scipy.stats.linregress例子.pandas.ols例子等. 不过本文使用 ...
- python编程print语法_Python 第一节 安装及 print 输出语句—教案
Python 第一节 安装及 print 输出语句 学习目标: 1 .学会安装 python 编程软件并测试编程环境是否成功 2 .理解字符串和表达式的概念 3 .学会使用 print 语句输出不同内 ...
- python编程软件排行榜_Python编程开发工具:这10个对Web开发者最有用的Python包
Python编程一时间成为了开发人员最喜欢的语言之一.无论是专业的,业余的,还是作为一个Python初学者,都可以从Python编程语言及其程序包中受益.Python已经被证明是当今最具活力的面向对象 ...
- python编程思维代码_Python编程快速上手——强口令检测算法案例分析
本文实例讲述了Python强口令检测算法.分享给大家供大家参考,具体如下: 强口令检测 题目如下: 写一个函数,它使用正则表达式,确保传入的口令字符串是强口令.强口令定义:长度不少于8个字符,同时包含 ...
- python io密集 多线程_Python进阶:聊聊IO密集型任务、计算密集型任务,以及多线程、多进程...
IO密集型任务 VS 计算密集型任务所谓IO密集型任务,是指磁盘IO.网络IO占主要的任务,计算量很小.比如请求网页.读写文件等.当然我们在Python中可以利用sleep达到IO密集型任务的目的. ...
最新文章
- APP安全谁之过?爱加密为APP开发者分忧
- NuGet安装和使用
- Hololens Spatial Mapping功能实现
- 后盾网lavarel视频项目---页面post方式提交之后动态弹出错误信息
- 数据结构之单向环形列表解决josef问题
- iOS原生CIFilter创建二维码
- 60K!刚面完Python!这个被Oracle裁掉的程序员求职刷爆全网!
- java 整型变量,Java 整型变量
- 订阅号如何配置服务器信息,订阅号服务号区别和订阅号启动服务器配置
- sqlserver自定义函数
- 海康威视工业相机使用
- selenium3降级到selenium2详细步骤
- v-for 循环生成多个表单元素 给动态生成的表单元素绑定值并且添加校验规则
- 服务器硬盘识别不到d盘,windows10系统本地磁盘找不到d盘如何解决
- JUC之striped64
- 一款好的软件,软件测试必不可少...
- 十九、 指派问题 - 匈牙利法 (0-1 整数规划)
- 【工具】GIT简单使用
- ViewPager嵌套ViewPager,内层ViewPager
- CSS粘性定位(sticky)