利用当前最流行的编程语言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. WinDbg 脚本实例,可以显示 SSDT
  2. 软件工程概论 课堂练习【图书馆系统的用例图】
  3. linux关于/etc/profile.d与/etc/profile的正确运用
  4. 贷款用途有什么限制?非法用途有什么后果?
  5. C语言 函数指针 - C语言零基础入门教程
  6. ros先订阅后发布 无法收到消息的解决办法
  7. 对比解析开源云平台:Eucalyptus VS OpenStack
  8. mt7621 openwrt19.07 打开uart3
  9. 51单片机8位数码管显示学号变化
  10. 体验中标普华Linux桌面2.0版办公应用秀
  11. Vue+FusionCharts 动态获取数据生成甘特图
  12. 不要低估实现难度,聊聊当下热议的“元宇宙”是什么?
  13. Python map函数 <map object at 0x000001C5CDCDA2B0>
  14. Jquery插件实现“点击获取验证码后60秒内禁止重新获取(防刷新)”
  15. 纯前端实现验证码功能
  16. 深入理解GO语言:map结构原理和源码分析
  17. 海关外贸企业大数据风控平台
  18. 微软苏菲rt能装鸿蒙,忘记RT,让微软还你一个不一样的“苏菲3”
  19. 浏览器控制台简单测试websocket接口收发
  20. 带宽-服务器测速(Speedtest)

热门文章

  1. 高什么发,什么并发,高并什么? ? ?
  2. 通过singlefile把网页保存到本地
  3. webrtc服务器开发--搭建环境
  4. 如何准备pmp考试?
  5. 泊松分布,指数分布介绍以及其联系与区别
  6. 【算法】第三届全国大学生算法设计与编程挑战赛(冬季赛)
  7. LeetCode-1264. 页面推荐(中等)
  8. 加载大图片,内存溢出问题
  9. Aurora 8B/10B光口通信
  10. cmd-命令行中打开新cmd窗口