【问题标题】:Output all dates for a date range [duplicate]输出日期范围的所有日期[重复]
【发布时间】:2014-10-06 20:51:17
【问题描述】:

我有一个开始日期(比如 2014 年 1 月 5 日)和结束日期(比如 2014 年 7 月 10 日)。我知道每周三都会发生一个事件。在 Python 中是否有一种简单的方法可以在这些日期范围之间输出整个星期三的日期?

因此假设 1 月 7 日是星期三,那么代码 sn-p 将输出 01.07.2014、01.14.2014、01.21.2014 等等。

【问题讨论】:

  • 没有内置函数,但您可以轻松添加timedelta(days=7) 跳过一周。
  • 标记为“重复”的问题在这里漏掉了一半的问题。
  • @MarkRansom:一半? OP 在这里没有尝试,所以我们可以假设他们已经可以自己做多少。从给定日期查找下一个星期三也是一种欺骗。一旦你拥有了这两个部分,将它们放在一起是微不足道的。
  • @MartijnPieters 您引用为重复的帖子实际上似乎完全符合我的要求,除了从给定日期查找特定的工作日,但我想我可以找到。谢谢!我只是不知道如何正确表达这个问题,因此没有找到任何解决方案。

标签: python datetime


【解决方案1】:

要获取给定日期之后的第一个特定工作日,只需添加工作日差异的timedelta:

wed = 2 # from the datetime.weekday definition
first_wed = start + datetime.timedelta(days=(7 + wed - start.weekday()) % 7)

一旦你有了,请查看Generate a list of datetimes between an interval in python。

【讨论】:

猜你喜欢
  • 2016-05-09
  • 1970-01-01
  • 2013-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-01
  • 2014-01-07
  • 2013-01-18
相关资源
最近更新 更多