我有成对的 DateTime 对象。每个 DateTime 对象都是时间范围的“开始”或“结束”。时间范围有时会重叠。我需要找到差距。
我在 pypi 上尝试了 DateTimeRange 模块,测试相交范围,然后构建包含的范围(根据他们的文档),但我无法将这些组件构建到一段代码中来做我想要的
编辑:在这种情况下,“间隔”被定义为最早的“开始”和最新的“结束”之间的任何时间段,该时间段不包含在“开始”和“结束”DateTime 对象对中
import dateparser
from pprint import pprint
foo = []
foo.append({
"start": dateparser.parse("8:00 AM"),
"end": dateparser.parse("8:06 AM")
})
foo.append({
"start": dateparser.parse("8:03 AM"),
"end": dateparser.parse("8:07 AM")
})
foo.append({
"start": dateparser.parse("8:02 AM"),
"end": dateparser.parse("8:16 AM")
})
foo.append({
"start": dateparser.parse("8:20 AM"),
"end": dateparser.parse("8:30 AM")
})
pprint(foo)
#[{'end': datetime.datetime(2019, 2, 15, 8, 6),
# 'start': datetime.datetime(2019, 2, 15, 8, 0)},
# {'end': datetime.datetime(2019, 2, 15, 8, 7),
# 'start': datetime.datetime(2019, 2, 15, 8, 3)},
# {'end': datetime.datetime(2019, 2, 15, 8, 16),
# 'start': datetime.datetime(2019, 2, 15, 8, 2)},
# {'end': datetime.datetime(2019, 2, 15, 8, 30),
# 'start': datetime.datetime(2019, 2, 15, 8, 20)}]
find_gaps(foo)
#desired output
#
#[{'end': datetime.datetime(2019, 2, 15, 8, 20),
# 'start': datetime.datetime(2019, 2, 15, 8, 16)}]
慕桂英3389331
相关分类