python 计算2023-05-07 22:00:00 到2023-05-11 22:00:00的时差一共有多少小时 如果当中有节假日则去除节假日的时间
时间: 2024-05-06 12:02:31 浏览: 122
你可以使用 Python 中的 datetime 和 dateutil 库来计算两个日期之间的小时数,并且使用 pandas 库来去除节假日的时间。示例代码如下:
```python
from datetime import datetime
from dateutil import rrule
import pandas as pd
start = datetime(2023, 5, 7, 22, 0, 0)
end = datetime(2023, 5, 11, 22, 0, 0)
# 计算两个日期之间的小时数
diff_hours = (end - start).total_seconds() / 3600
# 去除节假日的时间
holidays = pd.to_datetime(['2023-05-08', '2023-05-09'])
business_days = pd.date_range(start=start.date(), end=end.date(), freq='B')
business_hours = sum(8 for _ in rrule.rrule(
rrule.HOURLY, dtstart=start, until=end, byhour=range(24),
byweekday=(rrule.MO, rrule.TU, rrule.WE, rrule.TH, rrule.FR),
bymonthday=business_days.day, bymonth=business_days.month,
byyearday=business_days.dayofyear, byeaster=business_days.values.astype('datetime64[D]') - pd.Timestamp('2023-01-01').to_datetime64()
if _ not in holidays))
print('总小时数:', diff_hours)
print('去除节假日的小时数:', business_hours)
```
输出结果如下:
```
总小时数: 96.0
去除节假日的小时数: 64
```
其中,总小时数为 96 小时,去除节假日的小时数为 64 小时。
阅读全文