週の開始日がPythonの月曜日であることを考慮して、どのように1年の各週の週の開始日を取得できますか?
これは、開始日が日曜日であると仮定しています。
>>>import datetime as datetime
>>>dt = datetime .date(2013,12,30)
>>>dt.isocalendar()[1]
1
1
ただし、 2013 年 12 月 30 日はまだ 2013 年であるため、結果は ではありません。
週の開始日がPythonの月曜日であることを考慮して、どのように1年の各週の週の開始日を取得できますか?
これは、開始日が日曜日であると仮定しています。
>>>import datetime as datetime
>>>dt = datetime .date(2013,12,30)
>>>dt.isocalendar()[1]
1
1
ただし、 2013 年 12 月 30 日はまだ 2013 年であるため、結果は ではありません。
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)