python 计算几个时间列表的 计算时间并集共多少分钟
时间: 2023-07-31 07:10:42 浏览: 101
可以使用 Python 中的 datetime 和 timedelta 模块来计算时间列表的时间并集的总时间。以下是一个示例代码:
```python
from datetime import datetime, timedelta
def calculate_time_union(time_list):
start_time = min(time_list)
end_time = max(time_list)
time_delta = end_time - start_time
union_time = timedelta()
for i in range(time_delta.days + 1):
date = start_time + timedelta(days=i)
for time_range in time_list:
if date in time_range:
union_time += (min(time_range.end_time, date + timedelta(days=1)) - max(time_range.start_time, date))
return union_time.total_seconds() / 60
# 例子
time_list = [datetime(2021, 1, 1, 9, 0), datetime(2021, 1, 1, 10, 0), datetime(2021, 1, 1, 11, 0),
datetime(2021, 1, 1, 13, 0), datetime(2021, 1, 1, 14, 0), datetime(2021, 1, 1, 15, 0),
datetime(2021, 1, 1, 16, 0), datetime(2021, 1, 1, 17, 0)]
time_range_list = [range(datetime(2021, 1, 1, 9, 0), datetime(2021, 1, 1, 12, 0)),
range(datetime(2021, 1, 1, 11, 0), datetime(2021, 1, 1, 15, 0)),
range(datetime(2021, 1, 1, 14, 0), datetime(2021, 1, 1, 18, 0))]
print(calculate_time_union(time_range_list)) # 输出 270.0,即时间并集共270分钟
```
在此示例中,时间列表 `time_list` 表示一天中每个小时的时间点,时间范围列表 `time_range_list` 表示该天内的三个时间段。函数 `calculate_time_union` 的返回值为时间并集的总分钟数。
阅读全文
相关推荐








