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


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

详细代码和注释如下:

import timeinput_years = 0
input_month = 0
input_day = 0
localtime = time.localtime(time.time())
leap_years = False
while True:try:input_years = int(input("输入年:"))input_month = int(input("输入月:"))input_day = int(input("输入日:"))except:print("请输入数字,谢谢!")continueif input_years < localtime[0]:print("请输入大于或等于当前年份")continueif input_month in [1, 3, 5, 7, 8, 10, 12]:if input_day > 31 or input_day < 1:print("大月31天")continuebreakelif input_month in [4, 6, 9, 11]:if input_day > 30 or input_day < 1:print("小月30天")continuebreakelif input_month == 2:if input_years % 100 == 0 and input_years % 400 == 0:if input_day > 29 or input_day < 1:print("闰年2月29天")continuebreakelif input_years % 4 == 0 and input_years % 100 != 0:if input_day > 29 or input_day < 1:print("闰年2月29天")continuebreakelif input_years % 3200 == 0 and input_years % 172800 == 0:if input_day > 29 or input_day < 1:print("闰年2月29天")continuebreakelse:if input_day > 28 or input_day < 1:print("平年2月28天")continuebreakelse:print("请输入1至12月,谢谢!")continue
tm_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 = True
elif input_years % 4 == 0 and input_years % 100 != 0:leap_years = True
elif input_years % 3200 == 0 and input_years % 172800 == 0:leap_years = True
a = 0
# 计算输入的年里这一日是这一年的第多少天
for i in range(1, input_month + 1):for j in range(1, 32):if input_month == i and input_day == j:a += 1print(f"这是{input_years}年第{a}天")breaka += 1if i in [1, 3, 5, 7, 8, 10, 12]:if j >= 31:breakelif i in [4, 6, 9, 11]:if j >= 30:breakelif i == 2:if leap_years:if j >= 29:breakelse:if j >= 28:break
if 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 = 60break
else: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 = 60breakelse:var_y = tm_year + 1y = -1# 判断输入的年份至今年中间有多少个闰年,每个闰年加1天while var_y <= input_years:if var_y % 100 == 0 and var_y % 400 == 0:y += 1var_y += 1elif var_y % 4 == 0 and var_y % 100 != 0:y += 1var_y += 1elif var_y % 3200 == 0 and var_y % 172800 == 0:y += 1var_y += 1var_y += 1print(f"{input_years}至{tm_year + 1}年有{y + 1}个闰年")y = (input_years - tm_year - 1) * 365 + yfor 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 = 60break

Python小程序之倒计时相关推荐

  1. python控制相机自动拍照_微信小程序实现倒计时调用相机自动拍照功能

    这篇文章主要为大家详细介绍了微信小程序实现倒计时调用相机自动拍照功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了微信小程序定时拍照的具体代码,供大家参考,具体内容如下 在某 ...

  2. 黯然微信小程序杂记(三):微信小程序实现倒计时功能 附讲解教学 附源码

    黯然微信小程序杂记(三):微信小程序实现倒计时功能 附超详细注释 附源码 一.功能描述 二.界面展示 三.test.wxml代码 四.test.js代码(注释很详细 很易懂) CSDN私信我,有关微信 ...

  3. python恶搞小程序-有趣的python小程序

    有趣的python小程序 1.密码生成器x=int(input()) print(''.join(__import__('random').choice('QWERTYUIOPASDFGHJKLZXC ...

  4. python日历小程序_一个查看网络设备信息Python小程序

    原标题:一个查看网络设备信息Python小程序 网络编程中,最常见的一个问题就是,获取设备信息. 首先我们,要学习如何获取本机的网络信息.我们将用到标准库中的socket库.假如说,我们要查看本机的 ...

  5. 几个python小程序

    python小程序 1-100求和 1 def Sum(x, y): 2 return x+y 3 print reduce(lambda x,y:x+y,range(1,101)) 4 5 i = ...

  6. 人工智能python小程序_Python:一个可以套路别人的python小程序

    一个可以套路别人的python小程序~ 先简要介绍一下程序. 程序是使用pycharm工具,python语言所写.程序包括客户端 client.py 和服务器端 server.py 两部分,利用了py ...

  7. python如何运行一个python程序_python如何运行?第一个python小程序示范

    我们想要用python编程首先要做的就是安装一些工具,随后学会应用.那么问题来了,我们需要安装什么?python又是怎样运行的呢? 安装什么工具? 1.Python 3.6.5(我安装的,还有很多版本 ...

  8. 每日三思:优化微信小程序中倒计时占内存较大(19-0612-1917)

    小程序的倒计时存在暂用手机内存较大的问题,尤其是在列表中,如果每一项都有倒计时的话,一进页面就会卡死 解决思路 每次启用倒计时的时候,先清除倒计时,再启用(也就是一条腿走路,内存中只有当前的倒计时); ...

  9. 微信小程序动态倒计时

    微信小程序之倒计时插件 wxTimer 1.在全局app.js引入 下载: wxTimer 然后把wxTimer文件放在js中 for (let i = 0; i < addEvaluate.l ...

最新文章

  1. 2020年国际学术会议参考列表
  2. 你什么时候觉得自己会被边缘化?
  3. Linux 终端下颜色的输出
  4. java线程池应用的好处_java高级应用:线程池全面解析
  5. 去 IOE,MySQL 完胜 PostgreSQL
  6. Python函数积累
  7. js基础 之 引用类型
  8. 原python实现素数判断_Python实现求最大公约数及判断素数的方法
  9. Spark、Strom、Flink和Beam的技术选型
  10. 冰点下载器手机版apk_冰点文库下载器安卓手机版
  11. contos7改分辨率_Centos 7 修改系统屏幕分辨率
  12. 推进牛仔服装的高质量发展
  13. 想法随笔——知乎段子
  14. Keras深度学习实战(37)——手写文字识别
  15. 使用java导入excel表格中的内容进入到数据库中,出现excel表格的后缀名错误,如何解决。
  16. 2019腾讯区块链白皮书:产业区块链的破局之路
  17. DCS、PLC与SCADA的区别
  18. java生成带星号条形码_Code39生成条形码加星号的解决办法以及当扫描枪扫描不到条码的解决办法 | 学步园...
  19. 2020微信最新版可以修改ID号了,你的号码还那么尬么?
  20. python自动下单源码_python+selenium实现淘宝双十一自动下单

热门文章

  1. EIGRP特点包括:
  2. 机器学习(18)——分类算法(补充)
  3. 免费修复受损的mp4视频文件
  4. Sonic simple服务中设备图片、测试用例运行异常图片、失败录像路径映射配置
  5. CSDN是怎么样的一个网站
  6. 网站关键词排名突然下降的原因有哪些?
  7. 我在百度大脑用数据看《你好,李焕英》
  8. ntoskrnl.exe文件丢失或损坏的问题解决方法
  9. PXE配置中ks.cfg文件介绍
  10. java中二维数组的长度