用函数实现,输入某年某月某日,判断这一天是这一年的第几天(闰年考虑在内)
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)