python 计算2023-05-07 22:00:00 到2023-05-11 22:00:00的时差一共有多少小时 如果当中有节假日则去除节假日的时间v
时间: 2024-05-06 14:03:15 浏览: 12
要计算2023-05-07 22:00:00 到2023-05-11 22:00:00的时差,可以使用 Python 中的 datetime 模块和 timedelta 类。代码如下:
```python
import datetime
start_time = datetime.datetime(2023, 5, 7, 22, 0, 0)
end_time = datetime.datetime(2023, 5, 11, 22, 0, 0)
# 计算总时差
time_diff = end_time - start_time
total_hours = time_diff.total_seconds() / 3600
print("总时差(包括节假日):", total_hours, "小时")
```
要去除节假日的时间,可以自定义一个节假日列表,然后遍历这个列表,将节假日时间段内的时间从总时差中减去。代码如下:
```python
import datetime
start_time = datetime.datetime(2023, 5, 7, 22, 0, 0)
end_time = datetime.datetime(2023, 5, 11, 22, 0, 0)
# 自定义节假日列表
holidays = [
(datetime.datetime(2023, 5, 8, 0, 0, 0), datetime.datetime(2023, 5, 9, 0, 0, 0)),
(datetime.datetime(2023, 5, 10, 0, 0, 0), datetime.datetime(2023, 5, 11, 0, 0, 0))
]
# 计算总时差
time_diff = end_time - start_time
total_hours = time_diff.total_seconds() / 3600
# 减去节假日时间
for holiday in holidays:
if start_time < holiday[0] < end_time:
total_hours -= (holiday[1] - holiday[0]).total_seconds() / 3600
elif start_time < holiday[1] < end_time:
total_hours -= (holiday[1] - start_time).total_seconds() / 3600
elif holiday[0] <= start_time and end_time <= holiday[1]:
total_hours -= time_diff.total_seconds() / 3600
print("总时差(去除节假日):", total_hours, "小时")
```
这里假设节假日列表中的每个节假日都是一个时间段,用一个元组表示,第一个元素是节假日开始时间,第二个元素是结束时间。遍历节假日列表时,根据开始时间和结束时间与计算时间段的开始时间和结束时间的关系,分别减去节假日时间段的时差。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)