4#题目:输入某年某月某日,判断这一天是这一年的第几天?
代码:
2 year = int(input('请输入年份:'))
3 month = int(input('请输入月份:'))
4 day = int(input('请输入日期:'))
5
6 rmon = [31,29,31,30,31,30,31,31,30,31,30,31]
7
8 pmon = [31,28,31,30,31,30,31,31,30,31,30,31]
9 j = 0
10 tmp = 0
11 if ((year%4 == 0 and year%100 != 0) or year%400 == 0):
12 for i in rmon:
13 if (j < month):
14 tmp += rmon[j]
15 j += 1
16 else:
17 break
18 print('你输入的年份是闰年,输入的时间是这一年的第%d天'%(tmp+day))
19 else:
20 for i in pmon:
21 if (j < month):
22 tmp += pmon[j]
23 j += 1
24 else:
25 break
26 print('你输入的年份是平年,输入的时间是这一年的第%d天'%(tmp+day))
运行结果:
[root@HK code_100]# python code_4.py
请输入年份:2016
请输入月份:4
请输入日期:20
你输入的年份是闰年,输入的时间是这一年的第141天
[root@HK code_100]#
[root@HK code_100]# python code_4.py
请输入年份:2015
请输入月份:4
请输入日期:20
你输入的年份是平年,输入的时间是这一年的第140天
[root@HK code_100]#
代码解释:
2 year = int(input('请输入年份:')) #接收输入的日期,并且转换成int类型
3 month = int(input('请输入月份:'))
4 day = int(input('请输入日期:'))
5
6 rmon = [31,29,31,30,31,30,31,31,30,31,30,31] #闰年的每月天数
7
8 pmon = [31,28,31,30,31,30,31,31,30,31,30,31] #平年的每月天数
9 j = 0
10 tmp = 0
11 if ((year%4 == 0 and year%100 != 0) or year%400 == 0): #判断输入的年份为闰年
12 for i in rmon: # for循环遍历整个rmon
13 if (j < month): #判断累加参数j小于输入的月份,如果j>month,没有必要累加这个月的天数
14 tmp += rmon[j] #符合条件的月份天数累加
15 j += 1 #j=0 step为1递增
16 else:
17 break # 当循环的月份大于输入的月份时跳出循环
18 print('你输入的年份是闰年,输入的时间是这一年的第%d天'%(tmp+day)) # 格式化打印结果
19 else:
20 for i in pmon: # 与上面的代码解释相同,是平年的计算,差别在2月的天数
21 if (j < month):
22 tmp += pmon[j]
23 j += 1
24 else:
25 break
26 print('你输入的年份是平年,输入的时间是这一年的第%d天'%(tmp+day))
27