【问题标题】:Calculate the total days between a range of dates using Python使用 Python 计算一系列日期之间的总天数
【发布时间】:2023-01-19 23:42:00
【问题描述】:

我有一个日期范围列表,想找出这些范围之间的总天数。但是,这些范围可能重叠,也可能不重叠。我想排除重叠时间。我也想排除的范围之间也可能存在差距。

我很好奇计算这个的最佳方法。

一个例子:

ranges = [
{'start': 1/1/2001, 'end': 1/1/2002},
{'start': 1/1/2000, 'end': 1/1/2002},
{'start': 1/1/2003, 'end': 1/1/2004},
]

以天为单位的总范围时间 -- 1/1/2000 到 1/1/2002 + 1/1/2003 到 1/1/2004

【问题讨论】:

  • 很高兴看到您到目前为止尝试过的内容。 :-)

标签: python


【解决方案1】:

您可以使用 Pandas 轻松完成,这里是参考/示例代码

import pandas as pd

data = [
{'start': 1/1/2001, 'end': 1/1/2002},
{'start': 1/1/2000, 'end': 1/1/2002},
{'start': 1/1/2003, 'end': 1/1/2004},
]

def numDays(start,end)
    dt = pd.to_datetime(start, format='%d/%m/%Y')
    dt1 = pd.to_datetime(end, format='%d/%m/%Y')

    return (dt1-dt).days

for i in data:
   print(numDays(i["start"],i["end"]))

【讨论】:

  • 您能否澄清一下代码的哪一部分解决了重叠范围?
猜你喜欢
  • 2021-11-18
  • 1970-01-01
  • 2017-12-27
  • 1970-01-01
  • 2021-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-26
相关资源
最近更新 更多