中考倒计时python代码实现

信息化聊科技 2025-02-14 14:18:47

import datetimeimport tkinter as tkfrom tkinter import font# 励志语句库MOTIVATIONAL_QUOTES = ["坚持就是胜利!", "每一天都是新的开始!", "努力不会背叛你。",# ... 保持原有40条语句不变 ..."你想要的未来,藏在现在的努力里。"]class CountdownApp:def __init__(self, master):self.master = mastermaster.title("高考倒计时励志牌")master.configure(bg="#F0F8FF") # 爱丽丝蓝背景# 设置字体self.title_font = font.Font(family="微软雅黑", size=24, weight="bold")self.count_font = font.Font(family="Arial", size=48, weight="bold")self.quote_font = font.Font(family="楷体", size=18)# 创建界面元素self.create_widgets()# 初始更新self.update_display()# 每天00:00自动更新self.schedule_update()def create_widgets(self):# 主框架main_frame = tk.Frame(self.master, bg="#F0F8FF", padx=20, pady=20)main_frame.pack(expand=True)# 标题title_label = tk.Label(main_frame,text="2025高考倒计时",font=self.title_font,bg="#F0F8FF",fg="#2F4F4F") # 深石板灰title_label.pack(pady=(0, 20))# 倒计时数字显示self.count_label = tk.Label(main_frame,font=self.count_font,bg="#87CEEB", # 天蓝色fg="#FFFFFF",width=3,relief="ridge",borderwidth=4)self.count_label.pack(pady=10)# 单位标签unit_label = tk.Label(main_frame,text="天",font=self.title_font,bg="#F0F8FF",fg="#2F4F4F")unit_label.pack()# 分隔线sep = tk.Canvas(main_frame, bg="#F0F8FF", height=20, highlightthickness=0)sep.create_line(50, 10, 350, 10, width=2, fill="#87CEEB")sep.pack(fill='x', pady=20)# 励志语句显示self.quote_label = tk.Label(main_frame,wraplength=380,justify="center",font=self.quote_font,bg="#F0F8FF",fg="#228B22") # 森林绿self.quote_label.pack(pady=10)# 状态栏self.status_bar = tk.Label(self.master,text="每日一句激励,成就更好自己!",bd=1,relief="sunken",anchor="w",bg="#E6E6FA", # 薰衣草色fg="#696969")self.status_bar.pack(side="bottom", fill="x")def calculate_days(self):target_date = datetime.date(2025, 3, 20)start_date = datetime.date(2025, 2, 13)today = datetime.date.today()days_remaining = (target_date - today).daysdays_passed = (today - start_date).daysreturn days_remaining, days_passeddef get_quote_index(self, days_passed):if days_passed < 0:return -1return days_passed % len(MOTIVATIONAL_QUOTES)def update_display(self):days_remaining, days_passed = self.calculate_days()# 更新倒计时if days_remaining < 0:self.count_label.config(text="0", bg="#FF4500") # 橙红色else:self.count_label.config(text=str(days_remaining), bg="#87CEEB")# 更新励志语句if days_passed < 0:self.quote_label.config(text="倒计时尚未开始,提前准备就是胜利!")self.status_bar.config(text="当前日期早于2025年2月13日")else:index = self.get_quote_index(days_passed)self.quote_label.config(text=MOTIVATIONAL_QUOTES[index])self.status_bar.config(text=f"已坚持 {days_passed} 天 • {datetime.date.today().isoformat()}")def schedule_update(self):now = datetime.datetime.now()next_day = now + datetime.timedelta(days=1)next_day = next_day.replace(hour=0, minute=0, second=0)delta = (next_day - now).seconds * 1000 # 转换为毫秒self.master.after(delta, self.daily_update)def daily_update(self):self.update_display()# 每天00:00后重新设置定时器self.master.after(86400000, self.daily_update) # 24小时if __name__ == "__main__":root = tk.Tk()root.geometry("500x400+300+200") # 窗口大小和初始位置# 设置窗口图标(需要准备ico文件)# root.iconbitmap('clock.ico')app = CountdownApp(root)root.mainloop()

主要改进和特性:

1. 美观的UI设计:

- 柔和渐变色背景

- 大号立体数字显示

- 书法字体标题

- 装饰性分隔线

- 状态栏显示坚持天数和当前日期

2. 智能更新机制:

- 每天00:00自动刷新数据

- 倒计时归零时数字变红

- 自动计算天数差和语句索引

3. 响应式布局:

- 自适应窗口大小

- 自动换行的励志语句

- 合理的元素间距和边距

4. 视觉增强:

- 使用不同颜色区分状态

- 立体边框效果

- 专业字体搭配

- 状态栏进度提示

使用方法:

1. 直接运行即可,会自动获取系统日期

2. 窗口默认位置在屏幕(300,200)坐标处

3. 每天凌晨自动更新显示内容

4. 倒计时归零后会显示红色0并停止更新

扩展建议:

1. 可以添加`clock.ico`文件作为窗口图标

2. 增加声音提醒功能

3. 添加历史记录查看功能

4. 集成天气信息显示

5. 添加用户自定义语句功能

这个版本在保持功能完整性的同时,通过合理的颜色搭配、字体选择和布局设计,使界面更加专业美观,适合长期在桌面上显示。

0 阅读:15
评论列表

信息化聊科技

简介:感谢大家的关注