提问人:okura_machi 提问时间:11/16/2023 更新时间:11/16/2023 访问量:17
如何在 Python 中计算一个开始日期时间对象与另一个日期时间对象之间的差距,但删除一些非工作时间 [已关闭]
How to count the gap between a start datetime object to another datetime object in Python but delete some not work time [closed]
问:
对于特殊情况,例如开始时间是(y/m/d)2020-07-08 10:23:20,结束时间是2020-07-17 11:23:16,但应该删除不是工作时间的时间。工作时间间隔为周一至周六,每天上午 8 点至凌晨 12 点和下午 13 点至下午 18 点。 最好用 Python 编写,我的灵魂太复杂了,在某些情况下可能会出错,这是我的代码,如果有人能帮助我,我会很棒!多谢!
这是我的代码,我希望找到更好的方法来解决这个问题。
def count_time(start,end):
time = pd.Timedelta(0)
while (start.day != end.day):
if (end.weekday() in work_days):
delta_time = end - datetime.datetime(end.year,end.month,end.day,8,0,0)
if (end.hour > 13):
delta_time -= datetime.timedelta(hours=1)
time += delta_time
end = datetime.datetime(end.year,end.month,end.day-1,18,0,0)
else:
end = datetime.datetime(end.year,end.month,end.day-1,18,0,0)
if(end.weekday() in work_days):
delta_time = end - start
if (end.hour > 13 and start.hour < 12):
delta_time -= pd.Timedelta(hours=1)
time += delta_time
else:
time = time
return time
答: 暂无答案
评论