最近在学习python,每到摸鱼时间就想着还有多久下班,于是就想到了利用python写一个下班倒计时程序,下面给大家分享一下我的代码。
代码比较简单,相信各位大佬都能看懂!
记住,我们要养成写注释的好习惯!!!
import datetime
import pygame , sys
from tkinter import messagebox #用来制作弹出框
# 初始化所有pygame模块
pygame.init()
# 创建游戏窗口大小
size = width,height = 300,200
screen = pygame.display.set_mode(size)
# 设置窗口标题
pygame.display.set_caption("下班倒计时!")
# 加载图标
#ico = pygame.image.load(r"D:\MY\python\img\2.jpg")
# 设置图标大小
#ico = pygame.transform.smoothscale(ico,(50,50))
# 使用图标
#pygame.display.set_icon(ico)
# 创建颜色
whiteness = (255,255,255)
red = (255,0,0)
green = (0,255,0)
brown = (128,42,42)
blue = (135,206,235)
orange = (255,128,0)
purple = (138,43,226)
cyan = (0,255,255)
black = (0,0,0)
# 设置字体样式和大小
f = pygame.font.SysFont("stxihei",25)
f1 = pygame.font.SysFont("stxihei",40)
# 设置一个文本框
text = f.render("下班还有",True,black)
# 获取文本框的位置矩形大小
text_rect = text.get_rect()
# 设置文本框中心位置坐标
text_rect.center = (60,90)
# 创建控制频率的clock
clock = pygame.time.Clock()
# 控制频率
fps = 100
while True:
# 处理退出事件
for event in pygame.event.get(): #监听用户事件
if event.type == pygame.QUIT: #判断用户是否点击了关闭按钮
pygame.quit()
sys.exit() #用户退出
# 设置下班时间
h = 20 # 时
m = 00 # 分
s = 00 # 秒
# 设置背景颜色
screen.fill(blue)
# 绘制一条线
pygame.draw.line(screen, black, [110, 110], [230, 110], 2)
# 将文字打印到屏幕上
screen.blit(text,text_rect)
# 获取当前时间
time_now = datetime.datetime.now()
# 设置下班时间
time_end_Y = int(time_now.strftime("%Y")) # 获取当天时间的年
time_end_m = int(time_now.strftime("%m")) # 获取当天时间的月
time_end_d = int(time_now.strftime("%d")) # 获取当天时间的日
time_end_H = int(time_now.strftime("%H")) # 获取当天时间的时
time_end_M = int(time_now.strftime("%M")) # 获取当天时间的分
time_end_S = int(time_now.strftime("%S")) # 获取当天时间的秒
time_end = datetime.datetime(time_end_Y,time_end_m,time_end_d, h,m,s)
# 获取下班时间到现在时间还有多少秒
sumtime = (time_end-time_now).seconds
# print(sumtime)
# 设置时间文本框
times = f1.render(str(sumtime),True,red)
# 设置时间文本框位置矩形大小
times_rec = times.get_rect()
# 设置时间框中心位置坐标
times_rec.center = (170,90)
# 将时间打印到屏幕上
if h > time_end_H or (h == time_end_H and m > time_end_M):
if sumtime > 0 :
screen.blit(times,times_rec)
else:
# 倒计时结束后提示
messagebox.showinfo("下班倒计时结束!","重要的事情说三遍!\n\n下班时间到了,赶紧下班!\n下班时间到了,赶紧下班!\n下班时间到了,赶紧下班!")
break
elif h == time_end_H and m == time_end_M:
if s > time_end_S:
if sumtime > 0:
screen.blit(times, times_rec)
else:
# 倒计时结束后提示
messagebox.showinfo("下班倒计时结束!", "重要的事情说三遍!\n\n下班时间到了,赶紧下班!\n下班时间到了,赶紧下班!\n下班时间到了,赶紧下班!")
break
else:
print("下班时间小于当前时间,不能进行倒计时!")
break
else:
print("下班时间小于当前时间,不能进行倒计时!")
break
# 设置秒字文本框
s = f.render("(秒)",True,black)
# 设置秒文本框矩形大小
s_rec = s.get_rect()
# 设置秒文本框位置
s_rec.center = (260,90)
# 将秒字打印到屏幕上
screen.blit(s,s_rec)
# 将完整带显示的Surface对象更新到屏幕上
pygame.display.flip()
# 设置刷新率
clock.tick(fps)
本次分享结束,欢迎各位大佬观看!