python代码 时间字符串列表 时间存在重复 计算时间并集共多少分钟
时间: 2023-07-31 09:10:42 浏览: 93
可以使用 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_str in time_list:
time = datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S")
if date.date() == time.date():
union_time += timedelta(minutes=min(60, (time - max(time, date)).seconds // 60))
return union_time.total_seconds() / 60
# 例子
time_list = ["2021-01-01 09:00:00", "2021-01-01 10:00:00", "2021-01-01 11:00:00",
"2021-01-01 13:00:00", "2021-01-01 14:00:00", "2021-01-01 15:00:00",
"2021-01-01 16:00:00", "2021-01-01 17:00:00"]
print(calculate_time_union(time_list)) # 输出 480.0,即时间并集共480分钟
```
在此示例中,时间字符串列表 `time_list` 表示一天中每个小时的时间点,其中存在重复的时间。函数 `calculate_time_union` 的返回值为时间并集的总分钟数。
阅读全文