输入某年某月某日,判断这一天是这一年的第几天?(注意闰年和平年区别)
时间: 2023-07-16 10:15:15 浏览: 188
可以使用以下的算法来判断:
1. 先计算出闰年每个月的天数,平年每个月的天数。
2. 然后判断输入的年份是否是闰年,如果是,则使用闰年的天数表;否则使用平年的天数表。
3. 接着,计算出该日期之前的天数,即为该日期是这一年的第几天。
以下是 Python 代码实现:
```python
def is_leap(year):
"""
判断是否为闰年
"""
return (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
def day_of_year(year, month, day):
"""
计算该日期是这一年的第几天
"""
# 闰年每个月的天数
leap_year_days = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335]
# 平年每个月的天数
common_year_days = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
days_of_year = leap_year_days if is_leap(year) else common_year_days
return days_of_year[month - 1] + day
# 测试
print(day_of_year(2021, 3, 1)) # 60
print(day_of_year(2020, 3, 1)) # 61
```
阅读全文