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))

 

posted @ 2021-04-14 15:54  喵精灵  阅读(4281)  评论(0)    收藏  举报