腳本:
from datetime import datetime
import time
import os
today = datetime.now()
jieri_list = [
{"name": "元宵節(jié)", "date": "2023-02-05 00:00:00"},
{"name": "情人節(jié)", "date": "2023-02-14 00:00:00"},
{"name": "雨水", "date": "2023-02-19 00:00:00"},
{"name": "驚蟄", "date": "2023-03-06 00:00:00"},
{"name": "婦女節(jié)", "date": "2023-03-08 00:00:00"},
{"name": "保護(hù)母親河日", "date": "2023-03-09 00:00:00"},
{"name": "植樹(shù)節(jié)", "date": "2023-03-12 00:00:00"},
{"name": "國(guó)際警察日", "date": "2023-03-14 00:00:00"},
{"name": "白色情人節(jié)", "date": "2023-03-14 00:00:00"},
{"name": "消費(fèi)者權(quán)益日", "date": "2023-03-15 00:00:00"},
{"name": "國(guó)際航海日", "date": "2023-03-17 00:00:00"},
{"name": "全國(guó)愛(ài)肝日", "date": "2023-03-18 00:00:00"},
{"name": "春分", "date": "2023-03-21 00:00:00"},
{"name": "世界睡眠日", "date": "2023-03-21 00:00:00"},
{"name": "世界水日", "date": "2023-03-22 00:00:00"},
{"name": "龍頭節(jié)", "date": "2023-03-23 00:00:00"},
{"name": "世界氣象日", "date": "2023-03-23 00:00:00"},
{"name": "防治結(jié)核病日", "date": "2023-03-24 00:00:00"},
{"name": "學(xué)生安全教育日", "date": "2023-03-27 00:00:00"},
{"name": "愚人節(jié)", "date": "2023-04-01 00:00:00"},
{"name": "寒食節(jié)", "date": "2023-04-04 00:00:00"},
{"name": "清明節(jié)", "date": "2023-04-05 00:00:00"},
{"name": "世界衛(wèi)生日", "date": "2023-04-07 00:00:00"},
{"name": "復(fù)活節(jié)", "date": "2023-04-09 00:00:00"},
{"name": "泰國(guó)潑水節(jié)", "date": "2023-04-13 00:00:00"},
{"name": "黑色情人節(jié)", "date": "2023-04-14 00:00:00"},
{"name": "國(guó)家安全教育日", "date": "2023-04-15 00:00:00"},
{"name": "谷雨", "date": "2023-04-20 00:00:00"},
{"name": "上巳節(jié)", "date": "2023-04-22 00:00:00"},
{"name": "地球日", "date": "2023-04-22 00:00:00"},
{"name": "世界讀書日", "date": "2023-04-23 00:00:00"},
{"name": "中國(guó)航天日", "date": "2023-04-24 00:00:00"},
{"name": "知識(shí)產(chǎn)權(quán)日", "date": "2023-04-26 00:00:00"},
{"name": "勞動(dòng)節(jié)", "date": "2023-05-01 00:00:00"},
{"name": "世界哮喘日", "date": "2023-05-02 00:00:00"},
{"name": "青年節(jié)", "date": "2023-05-04 00:00:00"},
{"name": "立夏", "date": "2023-05-06 00:00:00"},
{"name": "世界微笑日", "date": "2023-05-08 00:00:00"},
{"name": "世界紅十字日", "date": "2023-05-08 00:00:00"},
{"name": "護(hù)士節(jié)", "date": "2023-05-12 00:00:00"},
{"name": "防災(zāi)減災(zāi)日", "date": "2023-05-12 00:00:00"},
{"name": "母親節(jié)", "date": "2023-05-14 00:00:00"},
{"name": "國(guó)際家庭日", "date": "2023-05-15 00:00:00"},
{"name": "博物館日", "date": "2023-05-18 00:00:00"},
{"name": "學(xué)生營(yíng)養(yǎng)日", "date": "2023-05-20 00:00:00"},
{"name": "網(wǎng)絡(luò)情人節(jié)", "date": "2023-05-20 00:00:00"},
{"name": "小滿", "date": "2023-05-21 00:00:00"},
{"name": "生物多樣性日", "date": "2023-05-22 00:00:00"},
{"name": "兒童節(jié)", "date": "2023-06-01 00:00:00"},
{"name": "環(huán)境日", "date": "2023-06-05 00:00:00"},
{"name": "芒種", "date": "2023-06-06 00:00:00"},
{"name": "全國(guó)愛(ài)眼日", "date": "2023-06-06 00:00:00"},
{"name": "世界獻(xiàn)血者日", "date": "2023-06-14 00:00:00"},
{"name": "父親節(jié)", "date": "2023-06-18 00:00:00"},
{"name": "夏至", "date": "2023-06-21 00:00:00"},
{"name": "端午節(jié)", "date": "2023-06-22 00:00:00"},
{"name": "國(guó)際奧林匹克日", "date": "2023-06-23 00:00:00"},
{"name": "全國(guó)土地日", "date": "2023-06-25 00:00:00"},
{"name": "國(guó)際禁毒日", "date": "2023-06-26 00:00:00"},
{"name": "建黨節(jié)", "date": "2023-07-01 00:00:00"},
{"name": "香港回歸日", "date": "2023-07-01 00:00:00"},
{"name": "體育記者日", "date": "2023-07-02 00:00:00"},
{"name": "美國(guó)獨(dú)立日", "date": "2023-07-04 00:00:00"},
{"name": "小暑", "date": "2023-07-07 00:00:00"},
{"name": "初伏", "date": "2023-07-11 00:00:00"},
{"name": "世界人口日", "date": "2023-07-11 00:00:00"},
{"name": "銀色情人節(jié)", "date": "2023-07-14 00:00:00"},
{"name": "中伏", "date": "2023-07-21 00:00:00"},
{"name": "大暑", "date": "2023-07-23 00:00:00"},
{"name": "非洲婦女日", "date": "2023-07-31 00:00:00"},
{"name": "建軍節(jié)", "date": "2023-08-01 00:00:00"},
{"name": "男人節(jié)", "date": "2023-08-03 00:00:00"},
{"name": "立秋", "date": "2023-08-08 00:00:00"},
{"name": "全民健身日", "date": "2023-08-08 00:00:00"},
{"name": "末伏", "date": "2023-08-10 00:00:00"},
{"name": "火把節(jié)", "date": "2023-08-10 00:00:00"},
{"name": "國(guó)際青年節(jié)", "date": "2023-08-12 00:00:00"},
{"name": "中國(guó)醫(yī)師節(jié)", "date": "2023-08-19 00:00:00"},
{"name": "律師咨詢?nèi)?, "date": "2023-08-26 00:00:00"},
{"name": "出伏", "date": "2023-08-20 00:00:00"},
{"name": "七夕節(jié)", "date": "2023-08-22 00:00:00"},
{"name": "處暑", "date": "2023-08-23 00:00:00"},
{"name": "中元節(jié)", "date": "2023-08-30 00:00:00"},
{"name": "抗戰(zhàn)勝利紀(jì)念日", "date": "2023-09-03 00:00:00"},
{"name": "白露", "date": "2023-09-08 00:00:00"},
{"name": "國(guó)際掃盲日", "date": "2023-09-08 00:00:00"},
{"name": "教師節(jié)", "date": "2023-09-10 00:00:00"},
{"name": "中國(guó)腦健康日", "date": "2023-09-16 00:00:00"},
{"name": "臭氧層保護(hù)日", "date": "2023-09-16 00:00:00"},
{"name": "清潔地球日", "date": "2023-09-17 00:00:00"},
{"name": "九一八紀(jì)念日", "date": "2023-09-18 00:00:00"},
{"name": "全國(guó)愛(ài)牙日", "date": "2023-09-20 00:00:00"},
{"name": "國(guó)際和平日", "date": "2023-09-21 00:00:00"},
{"name": "秋分", "date": "2023-09-23 00:00:00"},
{"name": "世界旅游日", "date": "2023-09-27 00:00:00"},
{"name": "中秋節(jié)", "date": "2023-09-29 00:00:00"},
{"name": "烈士紀(jì)念日", "date": "2023-09-30 00:00:00"},
{"name": "國(guó)慶節(jié)", "date": "2023-10-01 00:00:00"},
{"name": "世界動(dòng)物日", "date": "2023-10-04 00:00:00"},
{"name": "世界教師日", "date": "2023-10-05 00:00:00"},
{"name": "寒露", "date": "2023-10-08 00:00:00"},
{"name": "全國(guó)高血壓日", "date": "2023-10-08 00:00:00"},
{"name": "世界郵政日", "date": "2023-10-09 00:00:00"},
{"name": "世界保健日", "date": "2023-10-13 00:00:00"},
{"name": "世界標(biāo)準(zhǔn)日", "date": "2023-10-14 00:00:00"},
{"name": "國(guó)際盲人節(jié)", "date": "2023-10-15 00:00:00"},
{"name": "世界糧食日", "date": "2023-10-16 00:00:00"},
{"name": "重陽(yáng)節(jié)", "date": "2023-10-23 00:00:00"},
{"name": "霜降", "date": "2023-10-24 00:00:00"},
{"name": "程序員節(jié)", "date": "2023-10-24 00:00:00"},
{"name": "萬(wàn)圣夜", "date": "2023-10-31 00:00:00"},
{"name": "萬(wàn)圣節(jié)", "date": "2023-11-01 00:00:00"},
{"name": "立冬", "date": "2023-11-08 00:00:00"},
{"name": "記者節(jié)", "date": "2023-11-08 00:00:00"},
{"name": "消防宣傳日", "date": "2023-11-09 00:00:00"},
{"name": "光棍節(jié)", "date": "2023-11-11 00:00:00"},
{"name": "寒衣節(jié)", "date": "2023-11-13 00:00:00"},
{"name": "世界糖尿病日", "date": "2023-11-14 00:00:00"},
{"name": "學(xué)生日", "date": "2023-11-17 00:00:00"},
{"name": "小雪", "date": "2023-11-22 00:00:00"},
{"name": "感恩節(jié)", "date": "2023-11-23 00:00:00"},
{"name": "下元節(jié)", "date": "2023-11-27 00:00:00"},
{"name": "艾滋病日", "date": "2023-12-01 00:00:00"},
{"name": "國(guó)際殘疾人日", "date": "2023-12-03 00:00:00"},
{"name": "憲法日", "date": "2023-12-04 00:00:00"},
{"name": "大雪", "date": "2023-12-07 00:00:00"},
{"name": "世界足球日", "date": "2023-12-09 00:00:00"},
{"name": "世界人權(quán)日", "date": "2023-12-10 00:00:00"},
{"name": "國(guó)際山岳日", "date": "2023-12-11 00:00:00"},
{"name": "國(guó)家公祭日", "date": "2023-12-13 00:00:00"},
{"name": "強(qiáng)化免疫日", "date": "2023-12-15 00:00:00"},
{"name": "冬至", "date": "2023-12-22 00:00:00"},
{"name": "進(jìn)九", "date": "2023-12-22 00:00:00"},
{"name": "平安夜", "date": "2023-12-24 00:00:00"},
{"name": "圣誕節(jié)", "date": "2023-12-25 00:00:00"},
{"name": "節(jié)禮日", "date": "2023-12-26 00:00:00"},
{"name": "二九", "date": "2023-12-31 00:00:00"},
{"name": "元旦節(jié)", "date": "2024-01-01 00:00:00"},
{"name": "小寒", "date": "2024-01-06 00:00:00"},
{"name": "三九", "date": "2024-01-09 00:00:00"},
{"name": "中國(guó)人民警察節(jié)", "date": "2024-01-10 00:00:00"},
{"name": "臘八節(jié)", "date": "2024-01-18 00:00:00"},
{"name": "四九", "date": "2024-01-18 00:00:00"},
{"name": "大寒", "date": "2024-01-20 00:00:00"},
{"name": "國(guó)際海關(guān)日", "date": "2024-01-26 00:00:00"},
{"name": "五九", "date": "2024-01-27 00:00:00"},
{"name": "北小年", "date": "2024-02-02 00:00:00"},
{"name": "南小年", "date": "2024-02-03 00:00:00"},
{"name": "立春", "date": "2024-02-04 00:00:00"},
{"name": "六九", "date": "2024-02-05 00:00:00"},
{"name": "除夕", "date": "2024-02-09 00:00:00"},
]
def get_len_7_name(name):
# 不同name的長(zhǎng)度傳進(jìn)來(lái), 都返回一個(gè)固定長(zhǎng)度的name, 位數(shù)不夠的在前面后面以及中間補(bǔ)空格
if len(name) == 2:
name = " " + name[0] + " " + name[1] + " "
elif len(name) == 3:
name = " " + name + " "
elif len(name) == 4:
name = " " + name + " "
elif len(name) == 5:
name = " " + name + " "
elif len(name) == 6:
name = " " + name
elif len(name) == 7:
name = name
return name
def get_other_day(jieri):
jieridata = datetime.strptime(jieri["date"], "%Y-%m-%d %H:%M:%S")
jieri['name'] = get_len_7_name(jieri['name'])
if (jieridata - today).days < 0:
if (today - jieridata).days == 0:
return f"今天是 {jieri['name']} \n"
return "距離《" + jieri['name'] + "》《" + jieri['date'] + "》 已過(guò) " + str((today - jieridata).days) + "天\n"
else:
res = "距離《" + jieri['name'] + "》《" + jieri['date'] + "》 還有 " # {(jieridata - today).days}天
days = (jieridata - today).days
times = f"{int((jieridata - today).seconds / 3600)}時(shí){int(((jieridata - today).seconds % 3600) / 60)}分{int((jieridata - today).seconds % 60)}秒"
if (jieridata - today).days == 0:
res += times
elif (jieridata - today).days == 1:
res += f"{days}天 {times}"
else:
res += f"{days}天"
return f"{res} \n"
def mo():
global today
xiaban = datetime.strptime("18:00:00", "%H:%M:%S") # 下班
today = datetime.now()
while True:
today = datetime.now()
# {int((yr - today).seconds / 3600)}時(shí){int(((yr - today).seconds % 3600) / 60)}分{int((yr - today).seconds % 60)}秒
print(f"""\r======== 當(dāng)前時(shí)間 {datetime.strftime(today, '%Y-%m-%d %H:%M:%S')}========
{"".join([get_other_day(i) for i in jieri_list])}
距離 下班 還有 {int((xiaban - today).seconds / 3600)}時(shí){int(((xiaban - today).seconds % 3600) / 60)}分{int((xiaban - today).seconds % 60)}秒
""", end="")
time.sleep(1)
# os.system('cls') 用這個(gè)刷新屏幕會(huì)閃爍, 改用下面的不會(huì)
print("\033[H\033[J", end="")
if __name__ == '__main__':
mo()
運(yùn)行截圖
image.png