要计算员工在夜班上使用Lenel OnGuard的时间持续期,可以使用以下代码示例:
from datetime import datetime
def calculate_night_shift_duration(start_time, end_time):
night_shift_start = datetime.strptime('22:00', '%H:%M').time()
night_shift_end = datetime.strptime('06:00', '%H:%M').time()
if start_time > end_time:
# 如果开始时间在夜班结束时间之后,则将开始时间加一天
start_time = start_time.replace(day=start_time.day + 1)
night_shift_start_datetime = datetime.combine(start_time.date(), night_shift_start)
night_shift_end_datetime = datetime.combine(end_time.date(), night_shift_end)
if start_time < night_shift_start_datetime:
start_time = night_shift_start_datetime
if end_time > night_shift_end_datetime:
end_time = night_shift_end_datetime
duration = end_time - start_time
return duration.total_seconds() / 3600 # 将持续时间转换为小时
# 示例使用
start_time = datetime.strptime('2022-01-01 23:00', '%Y-%m-%d %H:%M')
end_time = datetime.strptime('2022-01-02 05:30', '%Y-%m-%d %H:%M')
duration = calculate_night_shift_duration(start_time, end_time)
print(f'员工在夜班上使用Lenel OnGuard的时间持续期为:{duration}小时')
这段代码首先定义了夜班的开始时间(22:00)和结束时间(06:00)。然后,根据传入的开始时间和结束时间,计算出夜班的具体日期和时间范围。如果开始时间在夜班结束时间之后,则将开始时间加一天。然后,将开始时间和结束时间限制在夜班的时间范围内。最后,计算持续时间,并将其转换为小时。