Python函数实现 传入时间是当年第几天,用if语句实现
时间: 2024-03-16 12:46:18 浏览: 20
可以使用以下代码来实现:
```python
def day_of_year(date):
if isinstance(date, str):
year, month, day = map(int, date.split('-'))
date = datetime.datetime(year, month, day)
elif isinstance(date, datetime.datetime):
pass
else:
raise TypeError('Invalid input type')
if date.year % 4 == 0 and date.year % 100 != 0 or date.year % 400 == 0:
leap_year = True
else:
leap_year = False
days_in_month = [31, 28 + leap_year, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
day_of_year = sum(days_in_month[:date.month - 1]) + date.day
return day_of_year
```
在这个函数中,首先使用`isinstance`函数判断输入的日期类型,如果是字符串,则将其转换为`datetime.datetime`类型。接着,使用`if`语句判断当前年份是否为闰年,从而确定二月份的天数。最后,使用`sum`函数将当月之前所有月份的天数相加,并加上当月的天数,就可以得到该日期在当年中是第几天了。
需要注意的是,这个实现中使用了两个`if`语句,一个用于判断输入日期的类型,一个用于判断当前年份是否为闰年。这两个`if`语句都是必要的,因为如果输入的日期类型不是字符串或`datetime.datetime`类型,或者当前年份不是闰年,都会影响计算结果的正确性。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)