这是一个计算天数的问题,输入日期(年、月、日),计算这是该年的第几天。要求定义并调用函数day_of_year(year,month,day),试编写程序。
时间: 2024-05-10 17:16:32 浏览: 107
输入某年某月某日,判断这一天是这一年的第几天
5星 · 资源好评率100%
可以通过计算每个月的天数来实现,以下是一个可能的实现:
```python
def is_leap_year(year):
"""
判断是否为闰年
"""
return (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
def day_of_year(year, month, day):
"""
计算日期是该年的第几天
"""
days_in_month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if is_leap_year(year):
days_in_month[2] = 29
day_of_year = day
for i in range(1, month):
day_of_year += days_in_month[i]
return day_of_year
# 测试代码
print(day_of_year(2022, 1, 1)) # 1
print(day_of_year(2022, 12, 31)) # 365
print(day_of_year(2024, 12, 31)) # 366
```
该程序先判断年份是否为闰年,根据每个月的天数和输入的月份、日期计算出该日期是该年的第几天。测试代码可以验证函数的正确性。
阅读全文