以与isocalen不同的方式获取日历周

2024-04-19 17:43:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下问题: 我有一个函数,它遍历所有工作日的日期列表。对于这些日期的每一天,我都需要得到周数。所以这看起来像:

last_day = datetime.date(2016, 2, 1)
current_workday = datetime.now().date()
datelist = []

while current_workday < last_day:
    datelist.append(current_workday)
    current_workday = workdays.workday(current_workday, 1) //get the next workday

for day in datelist:
    week = datetime.date(day).isocalendar()[1]
    print week

然而,我的老板已经不幸运了。“问题”在这一页的末尾http://www.staff.science.uu.nl/~gent0113/calendar/isocalendar.htm(转到长和短ISO年页)

“当且仅当相应的公历年开始于普通年份的星期四或闰年的星期三时,ISO日历年才是长的。”

正如作者进一步提到的那样,这似乎并不总是奏效:

“从1977年起,这条规则一直很有效,但在2004年(从星期四开始的闰年)失败了,如下图所示。” (由于我还不能发布图片,所以请参考长ISO年和短ISO年页面上的图表)

我的问题却恰恰相反。我似乎没有足够的信誉点显示给你,但在我的Excel输出文件,我得到一个cw0只有在1月1日

他不想在第0周。有没有人知道如何用一个星期的格式来计算,而不是一个从等日历?或者我只是做错了什么?你知道吗


Tags: 函数列表datetimedateisocurrentnowlast