python-用函数实现输入某年某月某日,判断这一天是这一年的第几天?闰年情况也考虑进去
今天看到一个题目“用函数实现输入某年某月某日,判断这一天是这一年的第几天?闰年情况也考虑进去”,用python来写,编写思路是:
1、先输入一个日期,然后根据日期获取对应的年、月、日
2、将月份及每个月份对应的天数存放在一个字典中
3、判断输入的年份是否为闰年,若为闰年则修改二月份的天数为29天
4、最后根据月、日计算天数
实现代码如下:
# 判断是否是闰年 def leap_year(year_one): if (year_one % 400 == 0) or (year_one % 4 == 0 and year_one % 100 != 0): return True else: return False # 用函数实现输入某年某月某日,判断这一天是这一年的第几天?闰年情况也考虑进去 def year_day(): str_ymd = input("请输入一个日期(eg:20160818):") str_y = int(str_ymd[0:4]) # 获取年份 str_m = int(str_ymd[4:6]) # 获取月份 str_d = int(str_ymd[6:8]) # 获取日 str_day = 0 # 定义第几天 # 定义一般情况下对应月份的天数 disc_day = {1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31} # 如果是闰年,2月份的天数修改为29天 if leap_year(str_y): disc_day[2] = 29 for i in range(1, str_m): str_day += disc_day[i] str_day = str_day + str_d print("%s是%d年的第%d天" % (str_ymd, str_y, str_day))
学而不思则罔,思而不学则殆