【发布时间】:2019-08-27 17:24:33
【问题描述】:
所以我有一组工作时间(班次),即日期时间格式的起点和终点元组。这样一个人就可以在同一天进行多个轮班:
from datetime import datetime
shift1_1 = datetime(year=2019, month=8, day=21, hour=8)
shift1_2 = datetime(year=2019, month=8, day=21, hour=11)
shift2_1 = datetime(year=2019, month=8, day=21, hour=12)
shift2_2 = datetime(year=2019, month=8, day=21, hour=17)
shift3_1 = datetime(year=2019, month=8, day=22, hour=8)
shift3_2 = datetime(year=2019, month=8, day=22, hour=10)
shift4_1 = datetime(year=2019, month=8, day=22, hour=12)
shift4_2 = datetime(year=2019, month=8, day=22, hour=15)
shift5_1 = datetime(year=2019, month=8, day=22, hour=17)
shift5_2 = datetime(year=2019, month=8, day=22, hour=19)
shifts = [(shift1_1,shift1_2), (shift2_1,shift2_2), (shift3_1,shift3_2), (shift4_1,shift4_2),(shift5_1,shift5_2)]
我想计算补数,所以非工作时间的起点和终点。
如何解决这个问题?至于现在,我还没有找到实用的计算方法。有人知道这个问题的算法吗?
如果有任何正确方向的提示,我将不胜感激。
【问题讨论】:
-
从上述示例数据中您想要的结果是什么样的?
-
#daystart_shift1 到 3 和 dayend_shif1 到 3 是等效日期的结束和开始
off_times = [ (daystart_shift1, shift1_1), (shift1_2, dayend_shift2), (daystart_shift2, shift2_1), (shift2_2, dayend_shift2), (daystart_shift3, shift3_1), (shift3_2, shift4_1), (shift4_2, shift5_1), (shift5_2, daysend_shift3)]
标签: python algorithm python-2.7 optimization python-datetime