基于Python实现倒计时工具

 更新时间:2022年08月09日 12:58:17   作者:aguang5241  
这篇文章主要为大家详细介绍了基于Python实现倒计时工具,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

基于Python编写的倒计时工具,供大家参考,具体内容如下

特点:

实时显示当前时间
自动判断用户输入日期,计算当前日期与目标日期相差大概多少年、月、日以及准确的相差天数

运行窗口

运行界面-1

运行界面-2

输入日期-3

结果窗口-4

代码

import time
import tkinter as tk
from tkinter import messagebox

def main():
    window1 = tk.Tk()
    window1.title('计时器【v0.0】')
    window1.geometry('300x200')

    l1 = tk.Label(window1, text = '当前时间:', font = ('宋体', 15))
    l1.place(x = 5, y = 10)
   
    def time_now():
        global seconds_now
        seconds_now = time.time()
        lt = time.localtime(seconds_now)
        time1 = []
        time2 = '%04d年%02d月%02d日    \n    %02d时%02d分%02d秒' % (lt[0], lt[1], lt[2], lt[3], lt[4], lt[5])

        if time2 != time1:
            time1 = time2
            l1_2 = tk.Label(window1, text = time1, font = ('宋体', 20))
            l1_2.configure(text = time2)
            l1_2.place(x = 30, y = 50)
            l1_2.after(200, time_now)
            
    time_now()
    
    def input_time():
        window2 = tk.Tk()
        window2.title('计时器【v0.0】')
        window2.geometry('300x120')

        l2_1 = tk.Label(window2, text = '年', font = ('宋体', 15))
        l2_1.place(x = 90, y = 20)
        l2_2 = tk.Label(window2, text = '月', font = ('宋体', 15))
        l2_2.place(x = 170, y = 20)
        l2_3 = tk.Label(window2, text = '日', font = ('宋体', 15))
        l2_3.place(x = 250, y = 20)
        l2_4 = tk.Label(window2, text = '有效日期【1970/1/2-3001/1/1】', font = ('宋体', 10))
        l2_4.place(x = 50, y = 50)

        year = tk.Entry(window2, text = None, font = ('宋体', 15), width = 5)
        month = tk.Entry(window2, text = None, font = ('宋体', 15), width = 5)
        day = tk.Entry(window2, text = None, font = ('宋体', 15), width = 5)
        year.place(x = 40, y = 20)
        month.place(x = 120, y = 20)
        day.place(x = 200, y = 20)

        def get_time():
            try:
                y = int(year.get())
                m = int(month.get())
                d = int(day.get())
                lt_ = time.strptime(f'{y} {m} {d}', '%Y %m %d')
                seconds_get = time.mktime(lt_)
            except BaseException:
                tk.messagebox.showerror(message='输入有误!')
            else:
                window2.withdraw()    
            
            string1 = '查询日期距离现在还有:'
            string2 = '查询日期距离现在已过去:'

            seconds_lasting = seconds_get - seconds_now
            
            day_lasting = abs(seconds_lasting) // 86400
            month_lasting = 0
            year_lasting = 0
            days = day_lasting
           
            if day_lasting > 356:
                year_lasting = day_lasting // 365
                day_lasting -= year_lasting * 365
                if day_lasting > 30:
                    month_lasting = day_lasting // 30
                    day_lasting -= month_lasting * 30
            elif day_lasting > 30:
                year_lasting = 0
                month_lasting = day_lasting // 30
                day_lasting -= month_lasting * 30 
            else:
                year_lasting, month_lasting = 0, 0
            
            if seconds_lasting > 0:
                prompt = string1
                days += 1
                day_lasting += 1
            else: 
                prompt = string2  
                  
            tk.messagebox.showinfo(message='%s%d天\n大概为%d年%d月%d天' % (prompt, days, year_lasting, month_lasting, day_lasting))   
                
        button2 = tk.Button(window2, text = '开始查询', font = ('宋体', 15), command = get_time)
        button2.place(x = 110, y = 75)
       
        window2.mainloop()

    button1 = tk.Button(window1, text = '输入查询日期', font = ('宋体', 15), command = input_time)
    button1.place(x = 85, y = 125)

    window1.mainloop()

if __name__ == '__main__':
    main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python实现求解括号匹配问题的方法

    Python实现求解括号匹配问题的方法

    这篇文章主要介绍了Python实现求解括号匹配问题的方法,涉及Python基于栈的字符串遍历、判断、运算解决括号匹配相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • python3中的logging记录日志实现过程及封装成类的操作

    python3中的logging记录日志实现过程及封装成类的操作

    这篇文章主要介绍了python3中的logging记录日志实现过程及封装成类的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Redis之windows下主从复制案例讲解

    Redis之windows下主从复制案例讲解

    这篇文章主要介绍了Redis之windows下主从复制案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Python的Tkinter点击按钮触发事件的例子

    Python的Tkinter点击按钮触发事件的例子

    今天小编就为大家分享一篇Python的Tkinter点击按钮触发事件的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python+threading模块对单个接口进行并发测试

    Python+threading模块对单个接口进行并发测试

    这篇文章主要为大家详细介绍了Python+threading模块对单个接口进行并发测试,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Python pandas如何向excel添加数据

    Python pandas如何向excel添加数据

    这篇文章主要介绍了Python pandas如何向excel添加数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Python 布尔类型示例精讲

    Python 布尔类型示例精讲

    这篇文章主要为大家介绍了Python 布尔类型示例精讲,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • 基于Python实现nc批量转tif格式

    基于Python实现nc批量转tif格式

    做项目有时会运用到netCDF格式的气象数据,而ArcGIS中需要用栅格影像进行处理,对于较多的文件,ArcGIS一个个手动转换过于繁琐,因此我们采用Python进行转换,下面就是Python实现nc批量转tif格式的示例代码,希望对你有所帮助
    2022-08-08
  • DjangoRestFramework 使用 simpleJWT 登陆认证完整记录

    DjangoRestFramework 使用 simpleJWT 登陆认证完整记录

    Djangorestframework-simplejwt是Django REST Framework框架的一个jwt插件,使用 python http 工具进行接口测试的方法文中给大家提到,重点给大家分享djangorestframework-simplejwt 使用记录及登陆认证的完成过程,感兴趣的朋友跟随小编一起看看吧
    2021-06-06
  • windows下pycharm搭建spark环境并成功运行 附源码

    windows下pycharm搭建spark环境并成功运行 附源码

    这篇文章主要介绍了windows下pycharm搭建spark环境并成功运行 附源码,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04

最新评论