微信小程序> Python小程序之倒计时

Python小程序之倒计时

浏览量:2870 时间: 来源:QQ128619

利用当前最流行的编程语言Python,来实现一个小案例,最终功能如下图展示:

小程序
小程序

代码为面向过程来写的,没作优化处理,可以利用Python封装继承多态的特性去进行优化,这里暂时不作展示。

详细代码和注释如下:

import timeinput_years = 0input_month = 0input_day = 0localtime = time.localtime(time.time())leap_years = Falsewhile True:    try:        input_years = int(input("输入年:"))        input_month = int(input("输入月:"))        input_day = int(input("输入日:"))    except:        print("请输入数字,谢谢!")        continue    if input_years < localtime[0]:        print("请输入大于或等于当前年份")        continue    if input_month in [1, 3, 5, 7, 8, 10, 12]:        if input_day > 31 or input_day < 1:            print("大月31天")            continue        break    elif input_month in [4, 6, 9, 11]:        if input_day > 30 or input_day < 1:            print("小月30天")            continue        break    elif input_month == 2:        if input_years % 100 == 0 and input_years % 400 == 0:            if input_day > 29 or input_day < 1:                print("闰年2月29天")                continue            break        elif input_years % 4 == 0 and input_years % 100 != 0:            if input_day > 29 or input_day < 1:                print("闰年2月29天")                continue            break        elif input_years % 3200 == 0 and input_years % 172800 == 0:            if input_day > 29 or input_day < 1:                print("闰年2月29天")                continue            break        else:            if input_day > 28 or input_day < 1:                print("平年2月28天")                continue            break    else:        print("请输入1至12月,谢谢!")        continuetm_year = localtime[0]tm_mon = localtime[1]tm_day = localtime[2]tm_hour = localtime[3]tm_min = localtime[4]tm_sec = localtime[5]tm_y_day = localtime[7]if input_years % 100 == 0 and input_years % 400 == 0:    leap_years = Trueelif input_years % 4 == 0 and input_years % 100 != 0:    leap_years = Trueelif input_years % 3200 == 0 and input_years % 172800 == 0:    leap_years = Truea = 0# 计算输入的年里这一日是这一年的第多少天for i in range(1, input_month + 1):    for j in range(1, 32):        if input_month == i and input_day == j:            a += 1            print(f"这是{input_years}年第{a}天")            break        a += 1        if i in [1, 3, 5, 7, 8, 10, 12]:            if j >= 31:                break        elif i in [4, 6, 9, 11]:            if j >= 30:                break        elif i == 2:            if leap_years:                if j >= 29:                    break            else:                if j >= 28:                    breakif input_years == tm_year:  # 查询的年份距离当前年份是同一年    for d in range(a - tm_y_day - 1, -1, -1):        Var_Hour = 23 - time.localtime(time.time())[3]        Var_Min = 59 - time.localtime(time.time())[4]        Var_Sec = 60 - time.localtime(time.time())[5]        for i in range(Var_Hour, 0, -1):            for j in range(Var_Min, 0, -1):                for k in range(Var_Sec, 0, -1):                    print("r距离%d年%d月%d日还剩%d天%02d小时%02d分钟%02d秒" % (input_years, input_month, input_day, d, i, j, k),                          end="")                    time.sleep(1)                    if k == 1:                        Var_Sec = 60                        breakelse:    if input_years - tm_year == 1:  # 查询的年份距离当前年份大于一整年        for d in range(365 - tm_y_day + a - 1 if leap_years else 366 - tm_y_day + a - 1, -1, -1):            Var_Hour = 23 - time.localtime(time.time())[3]            Var_Min = 59 - time.localtime(time.time())[4]            Var_Sec = 60 - time.localtime(time.time())[5]            for i in range(Var_Hour, 0, -1):                for j in range(Var_Min, 0, -1):                    for k in range(Var_Sec, 0, -1):                        print("r距离%d年%d月%d日还剩%d天%02d小时%02d分钟%02d秒" % (input_years, input_month, input_day, d, i, j, k),                              end="")                        time.sleep(1)                        if k == 1:                            Var_Sec = 60                            break    else:        var_y = tm_year + 1        y = -1        # 判断输入的年份至今年中间有多少个闰年,每个闰年加1天        while var_y <= input_years:            if var_y % 100 == 0 and var_y % 400 == 0:                y += 1                var_y += 1            elif var_y % 4 == 0 and var_y % 100 != 0:                y += 1                var_y += 1            elif var_y % 3200 == 0 and var_y % 172800 == 0:                y += 1                var_y += 1            var_y += 1        print(f"{input_years}至{tm_year + 1}年有{y + 1}个闰年")        y = (input_years - tm_year - 1) * 365 + y        for d in range(365 - tm_y_day + a + y - 1 if leap_years else 366 - tm_y_day + a + y - 1, -1, -1):            Var_Hour = 23 - time.localtime(time.time())[3]            Var_Min = 59 - time.localtime(time.time())[4]            Var_Sec = 60 - time.localtime(time.time())[5]            for i in range(Var_Hour, 0, -1):                for j in range(Var_Min, 0, -1):                    for k in range(Var_Sec, 0, -1):                        print("r距离%d年%d月%d日还剩%d天%02d小时%02d分钟%02d秒" % (input_years, input_month, input_day, d, i, j, k),                              end="")                        time.sleep(1)                        if k == 1:                            Var_Sec = 60                            break

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎