У меня есть пары объектов DateTime.Каждый объект DateTime является либо «началом», либо «концом» временного диапазона.Иногда временные диапазоны перекрываются.Мне нужно найти пробелы.
Я попробовал модуль DateTimeRange отключить pypi, протестировать пересекающиеся диапазоны и затем построить охватываемые диапазоны (согласно их документации), но я не смог собрать эти компоненты в частькод, который делает то, что я хочу
РЕДАКТИРОВАТЬ: «разрыв» в этом случае определяется как любой промежуток времени между самым ранним «началом» и самым последним «концом», который не охватывается одной из паробъекты 'start' и 'end' 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)}]