總體思路是對(duì)比班次的開始時(shí)間和結(jié)束時(shí)間,
計(jì)算出當(dāng)前的班次,
再根據(jù)班次得出當(dāng)前的值班人員,
最后用while循環(huán),實(shí)時(shí)刷新當(dāng)前的值班人員,
當(dāng)然也可以去個(gè)重,如果這個(gè)周期和上個(gè)周期的值班人員一樣,不顯示,如果不一樣再顯示出來(lái)也可以,更具有實(shí)用性
import time
from datetime import datetime
# 值班時(shí)間表,時(shí)間用字符串表示,看起來(lái)清晰一些
# 中班分層兩個(gè)key,是為了下面對(duì)比時(shí)間方便
schedule_dict = {
'早班': ['8:30', '16:30'],
'中班-昨天': ["16:30", "00:00"],
'中班-今天': ["00:00", "00:30"],
'晚班': ["00:30", "8:30"]
}
# 值班人員表
attendants_dict = {
'早班': '張三',
'中班-昨天': '李四',
'中班-今天': '李四',
'晚班': '王五'
}
# 自動(dòng)計(jì)算好當(dāng)前時(shí)間的年、月、日
now_year = datetime.now().year
now_month = datetime.now().month
now_day = datetime.now().day
# 從 schedule_dict 中的字符串提取出數(shù)字的小時(shí)、分鐘
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, minute
def run():
# 值班人員列表初始化
on_call_list = []
# 遍歷值班時(shí)間的表
for k, v in schedule_dict.items():
# 把 schedule_dict中的字符串弄成數(shù)字的小時(shí)、分鐘
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)
# 值班開始的時(shí)間
time_begin = datetime(year=now_year, month=now_month, day=now_day,
hour=hour_begin, minute=minute_begin)
# 值班結(jié)束的時(shí)間
time_end = datetime(year=now_year, month=now_month, day=now_day,
hour=hour_end, minute=minute_end)
# 現(xiàn)在的時(shí)間
time_now = datetime.now()
# 三個(gè)班次,會(huì)循環(huán)3次,對(duì)比現(xiàn)在的時(shí)間在哪個(gè)班次
if time_begin <= time_now <= time_end:
print('現(xiàn)在班次是:', 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就行,
# 這樣就能實(shí)時(shí)獲取當(dāng)前值班的人,休息的人
time.sleep(10)
if __name__ == '__main__':
main()
-
計(jì)算
+關(guān)注
關(guān)注
2文章
453瀏覽量
39278 -
循環(huán)
+關(guān)注
關(guān)注
0文章
92瀏覽量
16284
發(fā)布評(píng)論請(qǐng)先 登錄
為何運(yùn)維人員要學(xué)Python?
使用Python爬蟲實(shí)現(xiàn)百度圖片自動(dòng)下載的方法
python腳本如何根據(jù)公網(wǎng)IP自動(dòng)獲取地址和天氣信息?
什么是磁力鏈接?如何用Python獲取磁力種子?
如何用python爬取抖音app數(shù)據(jù)
如何用Python計(jì)算提高機(jī)器學(xué)習(xí)算法和結(jié)果
Python怎么玩轉(zhuǎn)JS腳本

Python怎么批量生成PDF文檔

python有什么用 如何用python創(chuàng)建數(shù)據(jù)庫(kù)
如何用Python自動(dòng)套用模板批量生成PDF文檔

yfinance:獲取數(shù)據(jù)的Python第三方模塊
如何用Python來(lái)實(shí)現(xiàn)文件系統(tǒng)的操作功能

如何用Python自動(dòng)套用模板批量生成PDF文檔

評(píng)論