gpt4 book ai didi

python - 如何使用 Python 获取当前周数?

转载 作者:太空狗 更新时间:2023-10-29 17:56:03 25 4
gpt4 key购买 nike

使用 Python...

我怎样才能得到特定一周的天数列表?

有点像...

{
'1' : ['01/03/2010','01/04/2010','01/05/2010','01/06/2010','01/07/2010','01/08/2010','01/09/2010'],
'2' : ['01/10/2010','01/11/2010','01/12/2010','01/13/2010','01/14/2010','01/15/2010','01/16/2010']
}

本例中字典的键是周数。

最佳答案

当心!如果您想定义自己的周数,可以使用提供的生成器表达式 in your first question顺便说一句,得到了一个很棒的答案)。如果要遵循周数的 ISO 约定,则需要小心:

the first calendar week of a year is that one which includes the first Thursday of that year and [...] the last calendar week of a calendar year is the week immediately preceding the first calendar week of the next calendar year.

例如,2010 年的 1 月 1 日和 2 日不是 2010 年的第一周,而是 2009 年的第 53 周。

Python 提供了一个使用 ISO 日历查找周数的模块:

示例代码:

h[1] >>> import datetime
h[1] >>> Jan1st = datetime.date(2010,1,1)
h[1] >>> Year,WeekNum,DOW = Jan1st.isocalendar() # DOW = day of week
h[1] >>> print Year,WeekNum,DOW
2009 53 5

再次注意 2010 年 1 月 1 日与 2009 年第 53 周的对应关系。

使用上一个答案中提供的生成器:

from datetime import date, timedelta


def allsundays(year):
"""This code was provided in the previous answer! It's not mine!"""
d = date(year, 1, 1) # January 1st
d += timedelta(days = 6 - d.weekday()) # First Sunday
while d.year == year:
yield d
d += timedelta(days = 7)

Dict = {}
for wn,d in enumerate(allsundays(2010)):
# This is my only contribution!
Dict[wn+1] = [(d + timedelta(days=k)).isoformat() for k in range(0,7) ]

print Dict

Dict 包含您请求的词典。

关于python - 如何使用 Python 获取当前周数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2003841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com