总体思路是对比班次的开始时间和结束时间,
计算出当前的班次,
再根据班次得出当前的值班人员,
最后用while循环,实时刷新当前的值班人员,
当然也可以去个重,如果这个周期和上个周期的值班人员一样,不显示,如果不一样再显示出来也可以,更具有实用性
import timefrom datetime import datetime# 值班时间表,时间用字符串表示,看起来清晰一些# 中班分层两个key,是为了下面对比时间方便schedule_dict = { '早班': ['8:30', '16:30'], '中班-昨天': [16:30, 00:00], '中班-今天': [00:00, 00:30], '晚班': [00:30, 8:30]}# 值班人员表attendants_dict = { '早班': '张三', '中班-昨天': '李四', '中班-今天': '李四', '晚班': '王五'}# 自动计算好当前时间的年、月、日now_year = datetime.now().yearnow_month = datetime.now().monthnow_day = datetime.now().day# 从 schedule_dict 中的字符串提取出数字的小时、分钟def get_hour_minute(hour_minute_string): hour = int(str(hour_minute_string).split(':')[0]) minute = int(str(hour_minute_string).split(':')[1]) return hour, minutedef run(): # 值班人员列表初始化 on_call_list = [] # 遍历值班时间的表 for k, v in schedule_dict.items(): # 把 schedule_dict中的字符串弄成数字的小时、分钟 time_begin_str, time_end_str = v hour_begin, minute_begin = get_hour_minute(time_begin_str) hour_end, minute_end = get_hour_minute(time_end_str) # 值班开始的时间 time_begin = datetime(year=now_year, month=now_month, day=now_day, hour=hour_begin, minute=minute_begin) # 值班结束的时间 time_end = datetime(year=now_year, month=now_month, day=now_day, hour=hour_end, minute=minute_end) # 现在的时间 time_now = datetime.now() # 三个班次,会循环3次,对比现在的时间在哪个班次 if time_begin <= time_now <= time_end: print('现在班次是:', k) on_call_person = attendants_dict.get(k) print('值班人员是:', on_call_person) on_call_list.append(on_call_person) no_on_call_list = list(set(attendants_dict.values()) - set(on_call_list)) print('休息的人分别是:', '、'.join(no_on_call_list)) print('-------------------------------------------------------------------')def main(): while 1: run() # 这里可以30分钟刷一次,改成1800就行, # 这样就能实时获取当前值班的人,休息的人 time.sleep(10)if __name__ == '__main__': main()
51单片机定时器和计数器
谈谈电容器的元件基础
赛灵思应用简介
红旗定制版华为P40披露,或将进行采用全新设计
折叠屏概念如此火热那么折叠屏手机值得购买吗
如何用Python自动获取排班人员
智慧农业系统中温室大棚智能控制的蔬菜喜获丰收
电子芯闻早报:苹果SIM卡激怒通信运营商
均值滤波和均值滤波算法程序
艾迈斯半导体公布面向模拟代工客户的2016年多项目晶圆制造服务计划
圈内热点┃智能穿戴物联网2.0时代的机遇与挑战
未来过十字路口时,自动驾驶车辆无需减速或停车
第六期(上海)半导体交流会丨主题公布
用笔记本也需有“本”事
人工智能会让画家提前下岗吗
苹果的ARKit会将iOS变成最大AR平台 大量招聘地图技术专家或为开发AR地图
西门子中国CEO:美国若禁止向中国出售芯片,欧洲在华制造业企业恐受波及
中国联通携手华为完成5G-Advanced 10Gbps峰值速率技术实验测试
AMR调度系统被业内人士称之为“海运”
盘点2021全球电子制造服务生产商(EMS) TOP100+ 超全