考虑一周的开始日,如何获得一周中每周的每周开始日期和周数是星期一在python?

时间:2013-09-18 10:19:40

标签: python date week-number

我如何获得一周中每周的星期开始日期,考虑到星期一的开始日是python的星期一?

这假设开始日是星期日:

>>>import datetime as datetime

>>>dt = datetime .date(2013,12,30)
>>>dt.isocalendar()[1]
1

但是,结果不应该是1,因为2013年12月30日仍然是2013年。

1 个答案:

答案 0 :(得分:1)

我不认为isocalendar的行为可以改变。

来自:http://docs.python.org/2/library/datetime.html#datetime.date.isocalendar

  

ISO年的第一周是包含星期四的第一个(格里高利)日历周。

但是strftime可以显示周数:

  

%U“第一个星期日之前新年的所有日子都被视为第0周。”   %W“第一个星期一之前的新年中的所有日子都被视为第0周。”

>>> import datetime
>>> dt = datetime.date(2013,12,30)
>>> dt.isocalendar()
(2014, 1, 1)
>>> dt.strftime("%U")
'52'

但是为了回答你的第一个问题,你为什么不只使用datetime.timedelta?

>>> import datetime
>>> dt = datetime.date(2013,12,30)
>>> w = datetime.timedelta(weeks=1)
>>> dt - w
datetime.date(2013, 12, 23)
>>> dt + w
datetime.date(2014, 1, 6)
>>> dt + 10 * w
datetime.date(2014, 3, 10)