如何实现一个下班倒计时程序

shigen日更文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。

Hello伙伴们,好几天不见啦。最近也是晚上打球太累,加上一直在研究mybatis的多租户问题,简直是没有太多的精力了。正好周六的晚上有一点点的空隙,就是洗完澡之后,顿时觉得整个人轻松下来了。有伙伴跟我一样的感受吗?

话不多说,现在我们来开始今天的主题:《如何实现一个桌面倒计时程序》。

身为打工人,一定是想着下班的那一刻吧。就像我昨天和我的伙伴开玩笑说:一个月就盼望着发工资的那一天。shigen找到了一段程序来实现下班倒计时,一起来看看实现的效果吧:

倒计时应用

页面上动态的显示当前时间和剩余时间,假设shigen的文章要在今天的23点写完,那么我还剩2小时25分钟的准备时间。是不是挺神奇的,另外,还可以实现到点了自动关机。人走电脑关,看看老板还有什么理由让你去加班🤫🤫🤫。

那就上今天的代码吧:

# -*- encoding: utf-8 -*-
__date__ = '2023/11/18 19:27:08'"""
距离下班时间倒计时
"""import time
from tkinter import *def refresh_current_time():"""刷新当前时间"""clock_time = time.strftime('%Y-%m-%d %H:%M:%S')curr_time.config(text=clock_time)curr_time.after(1000, refresh_current_time)def refresh_down_time():"""刷新倒计时时间"""# 当前时间戳now_time = int(time.time())# 下班时间时分秒数据过滤work_hour_val = int(work_hour.get())if work_hour_val > 23:down_label.config(text='小时的区间为(00-23)')returnwork_minute_val = int(work_minute.get())if work_minute_val > 59:down_label.config(text='分钟的区间为(00-59)')returnwork_second_val = int(work_second.get())if work_second_val > 59:down_label.config(text='秒数的区间为(00-59)')return# 下班时间转为时间戳work_date = str(work_hour_val) + ':' + str(work_minute_val) + ':' + str(work_second_val)work_str_time = time.strftime('%Y-%m-%d ') + work_datetime_array = time.strptime(work_str_time, "%Y-%m-%d %H:%M:%S")work_time = time.mktime(time_array)if now_time > work_time:down_label.config(text='已过下班时间')return# 距离下班时间剩余秒数diff_time = int(work_time - now_time)while diff_time > -1:# 获取倒计时-时分秒down_minute = diff_time // 60down_second = diff_time % 60down_hour = 0if down_minute > 60:down_hour = down_minute // 60down_minute = down_minute % 60# 刷新倒计时时间down_time = str(down_hour).zfill(2) + '时' + str(down_minute).zfill(2) + '分' + str(down_second).zfill(2) + '秒'down_label.config(text=down_time)tk_obj.update()time.sleep(1)if diff_time == 0:# 倒计时结束down_label.config(text='已到下班时间')# 自动关机,定时一分钟关机,可以取消# down_label.config(text='下一分钟将自动关机')# os.system('shutdown -s -f -t 60')breakdiff_time -= 1# 程序主入口
if __name__ == "__main__":# 设置页面数据tk_obj = Tk()tk_obj.geometry('400x280')tk_obj.resizable(0, 0)tk_obj.config(bg='white')tk_obj.title('倒计时应用')Label(tk_obj, text='下班倒计时', font='宋体 20 bold', bg='white').pack()# 设置当前时间Label(tk_obj, font='宋体 15 bold', text='当前时间:', bg='white').place(x=50, y=60)curr_time = Label(tk_obj, font='宋体 15', text='', fg='gray25', bg='white')curr_time.place(x=160, y=60)refresh_current_time()# 设置下班时间Label(tk_obj, font='宋体 15 bold', text='下班时间:', bg='white').place(x=50, y=110)# 下班时间-小时work_hour = StringVar()Entry(tk_obj, textvariable=work_hour, width=2, font='宋体 12').place(x=160, y=115)work_hour.set('18')# 下班时间-分钟work_minute = StringVar()Entry(tk_obj, textvariable=work_minute, width=2, font='宋体 12').place(x=185, y=115)work_minute.set('00')# 下班时间-秒数work_second = StringVar()Entry(tk_obj, textvariable=work_second, width=2, font='宋体 12').place(x=210, y=115)work_second.set('00')# 设置剩余时间Label(tk_obj, font='宋体 15 bold', text='剩余时间:', bg='white').place(x=50, y=160)down_label = Label(tk_obj, font='宋体 23', text='', fg='gray25', bg='white')down_label.place(x=160, y=155)down_label.config(text='00时00分00秒')# 开始计时按钮Button(tk_obj, text='START', bd='5', command=refresh_down_time, bg='green', font='宋体 10 bold').place(x=150, y=220)tk_obj.mainloop()

代码就是简简单单的204行,要实现到点自动关机的伙伴可以把63-64行的代码注释打开即可。

那最后总结一下吧,为什么shigen会选取这个程序作为今天的分享呢?

  1. 跨平台。首先python是跨平台的,其次tkinter也是跨平台的,意味着在常见的操作系统都可以执行这个代码,实现倒计时的效果;
  2. 新思路。其实shigen之前也做了一个类似的桌面时钟效果,做的更加酷炫一点的话,其实可以当作屏保了;
  3. 小工具的改造。其实shigen的mac上也有很多的小工具,但是都是在命令行执行的,改在了GUI界面岂不是更加的nice和方便,也实现傻瓜式操作。

以上就是今天分享的全部内容了,觉得不错的话,记得点赞 在看 关注支持一下哈,您的鼓励和支持将是shigen坚持日更的动力。同时,shigen在多个平台都有文章的同步,也可以同步的浏览和订阅:

平台账号链接
CSDNshigen01shigen的CSDN主页
知乎gen-2019shigen的知乎主页
掘金shigen01shigen的掘金主页
腾讯云开发者社区shigenshigen的腾讯云开发者社区主页
微信公众平台shigen公众号名:shigen

shigen一起,每天不一样!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/191826.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度模型压缩研究回顾

深度模型压缩研究回顾 作者:安静到无声 个人主页 目录 深度模型压缩研究回顾推荐专栏 在本节中,主要介绍了目前主流的深度神经网络压缩与加速方法,主要包括轻量化网络设计、参数量化、知识蒸馏、模型剪枝和硬件加速等,其中模型剪…

我认为除了HelloWorld之外,Python的三大数据转换实例可以作为开始学习Python的入门语言。

Python的三大数据转换实例 一、反转三位数 class Solution:def funtcion(self,number):hint(number/100)tint(number%100/10)zint(number%10)return 100*z10*th if __name____main__:solution Solution()num123new_num solution.funtcion(num)print("输入:{}".fo…

torch.stack

看网上看多没讲的不是很明白,我来试试空间上的理解 # 假设是时间步T1的输出 T1 torch.tensor([[1, 2, 3],[4, 5, 6],[7, 8, 9]]) # 假设是时间步T2的输出 T2 torch.tensor([[10, 20, 30],[40, 50, 60],[70, 80, 90]])输出: print(torch.stack((T1,T2…

Selenium——利用input标签上传文件

Selenium利用input标签上传文件 完整流程 打开文件上传页面选择要上传的文件点击上传按钮确认文件上传成功介绍怎么方便的获取对应元素的Xpath或者Css 简单介绍 在使用Selenium进行浏览器自动化测试时,文件上传是一个常见的需求。而 标签就是实现文件上传功能的…

【数据分享】2023年我国省市县三级的独角兽企业数量(Excel/Shp格式)

企业是经济活动的参与主体。一个城市的企业数量决定了这个城市的经济发展水平!比如一个城市的金融企业较多,那这个城市的金融产业肯定比较发达;一个城市的制造业企业较多,那这个城市的制造业肯定比较发达。 之前我们给大家分享了…

LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字

上一节实现了 LangChain 实现给动物取名字, 实际上每次给不同的动物取名字,还得修改源代码,这周就用模块化template来实现。 1. 添加promptTemplate from langchain.llms import OpenAI # 导入Langchain库中的OpenAI模块 from langchain.p…

IO多路转接之select和poll

目录 一. IO多路转接的概念 二. 通过select实现IO多路转接 2.1 select接口 2.2 Select服务器的实现 2.3 select实现IO多路转接的优缺点 三. 通过poll实现IO多路转接 3.1 poll接口 3.2 Poll服务器的实现 3.3 poll实现IO多路转接的优缺点 四. 总结 一. IO多路转接的概念…

制作Go程序的Docker容器

今天突然遇到需要将 Go 程序制作成 Docker 的需求,所以进行了一些研究。方法很简单,但是官方文档和教程有些需要注意的地方,所以写本文进行记录。 源程序 首先介绍一下示例程序,示例程序是一个 HTTP 服务器,会显示si…

【Linux从入门到放弃】环境变量

🧑‍💻作者: 情话0.0 📝专栏:《Linux从入门到放弃》 👦个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢! 文…

ESP32网络开发实例-非接触式水位监测

非接触式水位监测 文章目录 非接触式水位监测1、HC-SR04介绍2、软件准备3、硬件准备4、代码实现在本文中,我们将使用 HC-SR04 超声波传感器和 ESP32 创建一个水位监测网络服务器。 这将是一个非接触式水位测量系统。 首先,我们将介绍HC-SR04 与 ESP32 连接。 使用ESP32对超声…

PaddlePaddle:开源深度学习平台

深度学习作为人工智能领域的重要分支,正在全球范围内得到广泛应用。而在构建和训练深度学习模型时,选择一个高效、易用且功能强大的开源平台是至关重要的。PaddlePaddle(即飞桨)作为国内领先的深度学习平台,一直以来都…

深度学习数据集—细胞、微生物、显微图像数据集大合集

最近收集了一大波关于细胞、微生物、显微图像数据集,有细胞、微生物,细菌等。 接下来是每个数据的详细介绍!! 1、12500张血细胞增强图像(JPEG)数据集 该数据集包含12500张血细胞增强图像(JPE…