【发布时间】:2017-12-07 22:20:22
【问题描述】:
我想在每月第一周的星期日创建一个活动。
这是我为特定周数所做的事情,即june 的第一周以获取日期:
from datetime import datetime
myDate = "2017 22 0"
# here `2017` is year, `22` is week number and `0` =sunday is week day
datetime.strptime(myDate, "%Y %W %w")
#output...
datetime.datetime(2017, 6, 4, 0, 0)
所以我需要一个包含每个月第一周的所有周数的列表,这样我就可以循环访问它并获得想要的日期。
添加更多信息
我想要一种方法,它返回月份第一周的周数列表,其中第一周意味着周有第一个星期日。
def get_week_number(year=2017, day=0):
#day 0 means sunday
...
...
return [1, 5, 9, 13, 18, 22, ...]
【问题讨论】:
-
如何定义一个月的第一周?第一天是哪一周?每月有 4 天或更多天的第一周?第一个星期日是哪一周?还有什么?
-
@RuuddeJong 第一个星期日的那一周。
-
对于周数也有歧义,因为您需要定义一年中的第一周是什么。你必须定义一周从哪一天开始。有不同的约定。在欧洲并根据 ISO 标准,例如一周从星期一开始。据我所知,在美国,一周通常从星期日开始。一年中的第一周也可以通过多种方式定义。最常见的有:1 月 1 日所在的那一周、第一个星期四所在的那一周(ISO 标准)或第一个完整的一周。
-
一旦你决定了一年中的第一周是什么时候,你可以简单地将一个月的第一个星期日和一年的第一周开始之间的
timedelta除以7 获得周数(但要注意一次性)。
标签: python django date time calendar