日期时间多个范围之间的实际花费时间

问题描述 投票:0回答:1

我有很多具有这些值的记录:

id      start              end
1       2019-01-01 08:00   2019-01-01 09:00
2       2019-01-01 08:30   2019-01-01 09:15
3       2019-01-02 19:00   2019-01-02 19:15
...

前三条记录的实际花费时间为90m。

如果范围日期时间通过计算最小和最大时间相交,我很容易计算出实际花费的时间。

但是如果记录可以相交而不能相交,如何轻松地计算实际花费时间?

python-3.x
1个回答
0
投票

我认为这个stackoverflow答案是一个好的解决方案:https://stackoverflow.com/a/18746503/12845160

示例:

date_ranges = [
('2020-01-10 14:39:05', '2020-01-10 14:47:45'), 
('2020-01-10 14:11:27', '2020-01-10 14:39:05'), 
('2020-01-10 14:11:09', '2020-01-10 14:47:45'), 
('2020-01-10 12:44:41', '2020-01-10 13:00:55'), 
('2020-01-10 12:44:33', '2020-01-10 13:51:50'),
]

解决方法是:

>>> list(group(date_ranges))
[
('2020-01-10 12:44:33', '2020-01-10 13:51:50'), 
('2020-01-10 14:11:09', '2020-01-10 14:47:45'),
]

给定日期范围的最大间隔的联合。

感谢@falsetru

© www.soinside.com 2019 - 2024. All rights reserved.