题目
输入某年某月某日,判断这一天是这一年的第几天?
分析
例如:2018年6月19日
天数 = 19天 + 一月天数 + 2月天数 + ... + 6月天数
注意
- 闰年的2月是29天,如果年份是闰年,并且闰年的月份在3月以后,则需要多加1天。
-
1,3,5,7,8,10,12月是31天,2月是28天,其他的是30天【简单记法:4,6,9是30天,2月判断是否是闰年,如果不是则28天,是则加1天,其余31天】。
完整代码
1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 4 """ 5 题目:输入某年某月某日,判断这一天是这一年的第几天? 6 程序分析:以3月5日为例,应该先把前两个月的加起来, 7 然后再加上5天即本年的第几天, 8 特殊情况,闰年的2月是29天,如果年份是闰年,并且闰年的 9 月份在3月以后,则需要多加1天。 10 每四年一次闰年。 11 1,3,5,7,8,10,12月是31天,2月是28天,其他的是30天。 12 """ 13 year = int(input('请输入年份:')) 14 month = int(input('请输入月份:')) 15 day = int(input('请输入今日号数:')) 16 17 months = [0,31,59,90,120,151,181,212,243,273,304,334] 18 19 if (month >= 1) and (month <= 12): 20 sum = months[month-1] 21 22 sum += day 23 24 add = 0 25 26 if (year % 400 == 0) or (year % 4 == 0) and (year % 100 != 0): 27 add = 1 28 if (add == 1) and (month >= 2): 29 sum += add 30 31 print('该日期是一年中第%d' % sum)