如何从开始日期和结束日期列表中识别缺失的天数?

格雷格

如何从(start_date, end_date)元组列表中识别缺失的日期

例如,如何识别以下列表中缺失的日期:

dates = [('2011-01-01', '2011-01-14'), ('2011-01-15','2011-01-31'), 
         ('2011-02-01', '2011-02-14'), ('2011-03-01', '2011-03-14'), 
         ('2011-03-16', '2011-03-31')]

上面的示例缺少以下日期:

  • 2011-02-152011-02-28
  • 2011-03-15

如何从开始和结束日期元组列表中识别所有缺失的天数?

jprockbelly

有点冗长,但你明白了

编辑:清理了一下

from datetime import date, timedelta

dates = [('2011-01-01', '2011-01-14'), ('2011-01-15','2011-01-31'), 
         ('2011-02-01', '2011-02-14'), ('2011-03-01', '2011-03-14'), 
         ('2011-03-16', '2011-03-31')]

def d_range(d1,d2):
    delta = d2 - d1 #assumes second date is always after first
    return [d1 + timedelta(days=i) for i in range(delta.days + 1)]

my_days = []

#calc the date range between each tuple
for d in dates:

    d1 = datetime.strptime(d[0],'%Y-%m-%d')
    d2 = datetime.strptime(d[1],'%Y-%m-%d')

    my_days.extend(d_range(d1,d2))


#now do the same for the max and min dates
my_range = d_range(min(my_days), max(my_days))


missing_dates = set(my_range).difference(set(my_days))

并解决您的评论:

missing_dates_list = list(missing_dates)

或回到他们的原始格式:

missing_dates_str =  [datetime.strftime(date, '%Y-%m-%d') for date in missing_dates]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从结束日期和天数计算开始日期

给定开始日期和结束日期的月份中的天数

如何计算SAPUI5中开始日期和结束日期之间的总天数?

如何从开始日期和结束日期识别和汇总序列

如何在给定的开始日期和结束日期之间的数组中添加缺失的数据条目

如何遍历一类开始和结束日期时间,将每个日期范围之间的天数与每次迭代一起存储到列表中?

如何在 Rails 日期字段下拉列表中设置开始日期和结束日期选项?

Google 表格 - 如何从开始日期和结束日期提取新列中的日期列表

如何根据开始日期和结束日期多次显示记录,包括天数间隔

SQL-如何使用开始日期和结束日期查找缺少的活动天数

如何根据开始日期和编号的选择获取自动结束日期。旅行天数

使用 Mule 4 中的开始日期和天数计算结束日期

计算PHP中给定开始日期和结束日期之间的天数

如何开始和结束日期

新的开始日期和新的结束日期不应在现有的开始日期和结束日期列表中

日期范围中的开始和结束日期

Bootstrap中的开始日期和结束日期

AngularJS中的开始日期和结束日期

如何在 R 的数据框中查找开始和结束日期以及为每列记录的总天数?

如何根据开始和结束获取for循环中的日期列表?

计算员工在开始和结束日期之间报告工作的天数

如何从MYSQL中的日期列表中获取开始年份和结束年份

如何从日期范围(开始日期和结束日期)生成每周列表?

如何删除指定开始日期和结束日期期间之外的列表的日期时间元素?

如何根据开始和结束日期时间过滤包含抖动中的时间戳的 Firebase 对象列表?

在 Haskell 中创建从开始/结束日期开始的日期列表

根据开始日期和结束日期之间的天数更新日期值

在 SQL 中,如何根据开始日期和经过的天数计算一年中的天数

如何在TraMineR中配置SPELL的开始和结束日期