首页 > 解决方案 > 在python中查找某些时间范围内的时间重叠

问题描述

我在 python 中有两个时间范围,我想知道它们之间是否有任何重叠。我正在寻找一种算法。例如,我有以下时间范围:

r1 = start=(15:30:43), end=(16:30:56)
r2 = start=(15:40:35), end=(15:50:20)

如何在 python 中找到它们之间的重叠?

标签: pythondatetime

解决方案


您可以使用包中DatetimeIndex的对象,pandas如下所示:

import pandas as pd


# create DatetimeIndex objects with *seconds* resolution
dtidx1 = pd.date_range('15:30:43', '16:30:56', freq='S')
dtidx2 = pd.date_range('15:40:35', '15:50:20', freq='S')

# use the DatetimeIndex.intersection method to get another 
# DatetimeIndex object whose values are what you requested
dtidx1.intersection(dtidx2)

推荐阅读