Python练习题 004:判断某日期是该年的第几天

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python练习题 004:判断某日期是该年的第几天相关的知识,希望对你有一定的参考价值。

【Python练习题 004】输入某年某月某日,判断这一天是这一年的第几天?

----------------------------------------------

这题竟然写了 28 行代码!而且还不包含输入数据的验证(只能假设输入的日期是严格按照格式来的)。但我坚信,一定有更简洁的方法,比如 Python 对日期的处理。

不过反正还没学到这些知识,现在只能用傻大粗的办法解决。等学到高级的办法再来更新吧~~~

思路:先判断是否为闰年,这关系到 2 月份的天数。之后再根据月份值把前几个月的天数累积加起来,最后再加上个“日”,就可以了。

 1 dat = input(请输入某年某月某日,格式为 yyyy-mm-dd :)
 2 y = int(dat[0:4])  #获取年份
 3 m = int(dat[5:7])  #获取月份
 4 d = int(dat[8:])  #获取日
 5 
 6 ly = False
 7 
 8 if y%100 == 0:  #若年份能被100整除
 9     if y%400 == 0:  #且能被400整除
10         ly = True  #则是闰年
11     else:
12         ly = False
13 elif y%4 == 0:  #其它情况下,若能被4整除
14     ly = True  #则为闰年
15 else:
16     ly = False
17 
18 if ly == True:  #若为闰年,则2月份有29天
19     ms = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
20 else:
21     ms = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
22 
23 days = 0
24 for i in range(1, 13):  #从1到12逐一判断,以确定月份
25     if i == m:
26         for j in range(i-1):  #确定月份i之后,则将ms列表中的前i-1项相加
27             days += ms[j]
28         print(%s是该年份的第%s天。 % (dat, (days + d))) #最后再加上“日”,即是答案

请大神帮忙简化下这渣代码。跪谢!

以上是关于Python练习题 004:判断某日期是该年的第几天的主要内容,如果未能解决你的问题,请参考以下文章

C语言练习之计算某年日是该年的第几天

给定一个日期,输出这个日期是该年的第几天

编程:要求输入某一年月日,判断其为该年的第几天?

zzuli OJ 1129: 第几天

用C语言写一个函数,给出年月日,计算该日是该年的第几天

c语言编程:输入某年某月某日,计算出这一天是该年的第几天?该怎么解答啊