最近在学习python,想到每天到点下班,便突发奇想写了个下班的倒计时程序,通过input输入下班时间,然后出现下班倒计时

我把下班时间元组减去当前时间元组得到的秒数除两个60得到剩余小时数,同样的方法得到剩余分钟数和剩余秒数:

now = datetime.datetime.today()
xiaban = datetime.datetime.strptime(xbsj, "%H:%M:%S")
deltime = xiaban - now
shour = int((deltime.seconds) / 60 / 60)  # 剩余小时数
smin = int((deltime.seconds - shour * 60 * 60) / 60)  # 剩余分钟数
ssec = int(deltime.seconds - (smin * 60 + shour * 60 * 60))  # 剩余秒数

因为要一直刷新秒数,所以要print覆盖打印输出,所以用了"\r"从第一位开始打印, end="" 不换行  ,必须要加flush=True 因为不加的话,它会在循环结束才打印一次
print("\r", "距离下班时间还有:{}小时{}分{}秒".format(shour, smin, ssec), end="", flush=True)

运行结果如下:

     

     

然后我再倒计时结束后再加了个文字提醒:

while djs != 0:
    print("\r", "你已经下班啦!注意打卡,回家回家!(该程序将在%d秒后关闭)"%djs, end="", flush=True)
    djs = djs - 1
    time.sleep(1)
break

djs定义的一个倒计时变量, 当它等于0即意味着到下班时间了,然后就输出打印

全部代码如下:

        

import time
import datetime

class XB:
    def xiaban(self):
        while True:
            try:
                xbsj = input("请输入你的下班时间(格式如:18:30:00):")
                shour = 1
                smin = 1
                ssec = 1
                while not(shour == 0 and smin == 0 and ssec ==0):
                    now = datetime.datetime.today()
                    xiaban = datetime.datetime.strptime(xbsj, "%H:%M:%S")
                    deltime = xiaban - now
                    shour = int((deltime.seconds) / 60 / 60)  # 剩余小时数
                    smin = int((deltime.seconds - shour * 60 * 60) / 60)  # 剩余分钟数
                    ssec = int(deltime.seconds - (smin * 60 + shour * 60 * 60))  # 剩余秒数
                    print("\r", "距离下班时间还有:{}小时{}分{}秒".format(shour, smin, ssec), end="", flush=True)
                    time.sleep(1)
                djs = 60
                while djs != 0:
                    print("\r", "你已经下班啦!注意打卡,回家回家!(该程序将在%d秒后关闭)"%djs, end="", flush=True)
                    djs = djs - 1
                    time.sleep(1)
                break
            except Exception:
                print("输入的格式不正确,请按照提示输入格式!")

if __name__ == '__main__':
    go = XB()
    XB().xiaban()

加油 上班偷偷学习python的一天

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐