【Python】【demo实验8】【练习实例】【计算当天是当年的第几天】
题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:
以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天:
对于年份,需要考虑是否为闰年;
对于月份,可以建立一个列表,每月的天数;
我的源代码:
#!/usr/bin/python # encoding=utf-8 # -*- coding: UTF-8 -*- # 题目:输入某年某月某日,判断这一天是这一年的第几天? date = (input("please input the date:\n")) #输入格式为20190909 pingNian = [0,31,28,31,30,31,30,31,31,30,31,30,31]#平年每月天数 runNian = [0,31,28,31,30,31,30,31,31,30,31,30,31]#闰年每月天数 y=int(date[0:4]) #获取年份 m=int(date[4:6]) #获取月份 d=int(date[6:8]) #获取日数 num = 0 #用于统计 k = 0 #用于标记平年还是闰年,k==1 表示为闰年; #run函数判断是否为闰年 #能被4整除的不能被100整除的都是闰年 #能被400整除的都是闰年; #print(pingNian,runNian,y,m,d,num,k) def run(y): return (y%4==0 and y%100!=0 or y%400==0) if m in [1,2]: if m == 2: num = pingNian[1]+d else : num = d else: if run(y): for i in range(1,m): num = num + runNian[i] print("*",num) else: for i in range(1,m): num = num + pingNian[i] print("#",num) num = num + d print(num)
输出结果:
C:\Python30_demo>python 019demo.py please input the date: 20130506 # 31 # 59 # 90 # 120 126
原题给出的解答:
————————(我是分割线)————————
参考:
1. RUNOOB.COM : https://www.runoob.com/python/python-exercise-example3.html
2. https://zhidao.baidu.com/question/467715860.html
3. 百度百科:https://baike.baidu.com/item/%E5%AE%8C%E5%85%A8%E5%B9%B3%E6%96%B9%E6%95%B0/8025061?fr=aladdin
备注:
初次编辑时间:2019年9月23日23:10:11
环境:Windows 7 / Python 3.7.2
————————
欢迎访问我的博客;
如果您觉得有用,请点赞!
说明:
标题带有*表示重要或待重新查看确认
标题带有#表示未编辑完成;待补充
标题带有######表示为概要目录