python-3.x - 几个日期时间范围之间的实际花费时间
问题描述
我有很多具有这些值的记录:
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
...
前 3 条记录的实际花费时间为 90m。
如果范围日期时间相交,我可以通过计算最小和最大时间轻松计算实际花费的时间。
但是,如果记录可以相交而不相交,如何轻松计算实际花费的时间?
解决方案
我认为一个很好的解决方案是这个 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
推荐阅读
- json - Ansible from_json 过滤不返回输出
- ios - 在自定义单元格的 tableView(_:cellForRowAt:) 中以编程方式添加标签
- java - 在 Java 8 中使用先前链接的 thenCompose lambdas 中的值
- php - 如何检查数组下一个索引是否存在于php中?
- rust - 如何递归地遵循自引用 Rc?
- gatsby - 带有 gatsby 图像的 Airtable gatsby 源插件
- javascript - Javascript:创建一个变量然后在提示中使用它
- css - 如何正确使用 CSS 3D Transform 创建“全景网格”?
- javascript - 用 Axios 承诺一切
- css - CSS:响应式 UL/LI