用Python编写函数,传入任意一个日期的年、月、日三个数据,输出此日期是该年的第几天? 注意:闰年的 2 月是 28 天,非闰年的 2 月是 29 天,要首先判断该年是否是闰年。
时间: 2024-05-04 22:15:21 浏览: 80
以下是Python代码:
```python
def day_of_year(year, month, day):
"""
计算给定日期是该年的第几天
:param year: 年份
:param month: 月份
:param day: 日
:return: 该年的第几天
"""
days_of_month = [31, 28 if year % 4 != 0 or (year % 100 == 0 and year % 400 != 0) else 29,
31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
days = sum(days_of_month[:month-1]) + day
if month > 2 and year % 4 == 0 and (year % 100 != 0 or year % 400 == 0):
days += 1
return days
```
其中,`days_of_month`是一个列表,保存每个月份的天数。根据闰年的定义,如果该年能被4整除但不能被100整除,或能被400整除,则是闰年,2月份有29天;否则是非闰年,2月份有28天。在计算该年的第几天时,需要先将该月之前的天数相加,如果该月份大于2并且该年是闰年,则需要再加1。
阅读全文