python输入某年某月某日判断这一天是这一年的第几天
from datetime import datetime #引入日期类
def is_leap_year(year):
"""判断是否为闰年"""
return (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
# 根据年份和月份返回当年年份所在月有多少天
def days_in_month(year, month):
"""返回指定年份的月份的天数"""
if month in [4, 6, 9, 11]:
return 30
elif month == 2:
return 29 if is_leap_year(year) else 28
else:
return 31
# 判断输入日期是否大于该月天数,如果大于,返回错误信息,否则返回结果
def day_of_year(year, month, day):
"""计算给定日期是该年的第几天"""
if day > days_in_month(year, month):
return "输入错误,日期超出了该月的天数"
date = datetime(year, month, day) #返回datetime对象
day_of_the_year = date.timetuple().tm_yday #将日期格式转为时间元组,返回这一年这个月这一天是本年的第几天
return day_of_the_year
# 控制台输入
year = int(input("请输入年份: "))
month = int(input("请输入月份: "))
day = int(input("请输入日期: "))
# 返回结果
result = day_of_year(year, month, day)
# 判断结果是否为int类型,如果是,则输出拼接结果,否则直接输出
if isinstance(result, int):
print(f"{year}年{month}月{day}日是该年的第{result}天")
else:
print(result)