用函数实现,输入某年某月某日,判断这一天是这一年的第几天(闰年考虑在内)

用函数实现,输入某年某月某日,判断这一天是这一年的第几天(闰年考虑在内)

def year(y):
    '''
    定义判断2月份天数的函数
    :param y: 输入的年份
    :return: 2月的天数
    '''
    if (y%4 == 0 and y%100 != 0) or (y%400 == 0):
        return  29
    else:
        return  28

def daynum(day):
    '''
    定义判断输入的某一天是这一年的第几天
    :param day:输入的年月日字符串
    :return:返回的是输入的某一天是这一年的第几天
    '''
    try:
        list_day = day.split('.') #对输入的字符串进行切片并生成列表
        y = int(list_day[0]) #将列表内元素的字符串类型转成数字类型
        m = int(list_day[1])
        d = int(list_day[2])
        mouth2 = year(y)
        list_mouth = [31,mouth2,31,30,31,30,31,31,30,31,30,31]
        # 判断输入的2月份的 月和日 是否符合要求 如果符合就返回天数
        if m == 2 and (0 <d<= mouth2):
            day_num = sum(list_mouth[:(m - 1)]) + d
            return day_num
        # 判断有31天的月份 输入的日期是否符合要求 如果符合就返回天数
        elif (m==1 or m==3 or m==5 or m==7 or m==8 or m==10 or m==12) and (0 <d <= 31):
            day_num = sum(list_mouth[:(m - 1)]) + d
            return day_num
        # 判断有30天的月份 输入的日期是否符合要求 如果符合就返回天数
        elif (m==4 or m==6 or m==9 or m==11) and (0 <d <= 30):
            day_num = sum(list_mouth[:(m - 1)]) + d
            return day_num
        else:
            return '请输入正确的日期'
    except:
        return '请输入正确的格式'


# 调用函数
day1 = input('请输入年月日如1999.1.1:')
number = daynum(day1)
print(number)

猜你喜欢

转载自blog.csdn.net/weixin_44166997/article/details/88316766