【问题标题】:Display a range of dates based on current date, in Python在 Python 中显示基于当前日期的日期范围
【发布时间】:2014-06-03 05:15:03
【问题描述】:
import datetime

print datetime.datetime.now().strftime("Week of %m/%d") 
    #returns "Week of 04/18"

我希望它打印“4/11 到 4/18 周”(4/13 正好是提前一周) 如果该周在 4/3 结束,则需要考虑“3/27 至 4/3 周”

有没有简单的方法可以做到这一点?

【问题讨论】:

  • 您使用什么编程语言?添加标签,并可能在标题中提及。
  • @BasilBourque 谢谢,编辑帖子以显示语言

标签: python date datetime time strftime


【解决方案1】:

dateutil.relativedelta 会做你想做的事:

import datetime
from dateutil.relativedelta import *

march27 = datetime.datetime(2014, 3, 27)
print (march27 + relativedelta(weeks=+1)).strftime("Week of %m/%d")
#prints "Week of 04/03"

【讨论】:

    【解决方案2】:

    你可以只使用 stdlib datetime 模块:

    from datetime import date, timedelta
    
    now = date(2014, 4, 18)
    print now.strftime('Week of %m/%d')
    # -> Week of 04/18
    weekbefore = now - timedelta(days=7)
    print "Week of {weekbefore:%m/%d} to {now:%m/%d}".format(**vars())
    # -> Week of 04/11 to 04/18
    

    now = date(2014, 4, 3) 也一样。在这种情况下,它会打印 Week of 03/27 to 04/03

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-09
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      相关资源
      最近更新 更多