如何从python中的周数中获取日期列表

如何从python中的周数中获取日期列表,python,django,Python,Django,因此,我使用x=mydate.strftime(“%U”)知道日期的周数,现在我需要找到该周的所有日期。最终,我需要从django on date对象中获取一个查询集,该查询集返回给定周内的所有记录,只需知道周数即可。比如: y = Stuff.objects.filter=(date__range=[#anydate that is in the week number of x]) 您可以使用箭头: import arrow def get_week(dt): mydate =

因此,我使用
x=mydate.strftime(“%U”)
知道日期的周数,现在我需要找到该周的所有日期。最终,我需要从django on date对象中获取一个查询集,该查询集返回给定周内的所有记录,只需知道周数即可。比如:

y = Stuff.objects.filter=(date__range=[#anydate that is in the week number of x])

您可以使用箭头:

import arrow

def get_week(dt):
    mydate = arrow.get(dt)
    start = mydate.floor('week')
    end = mydate.ceil('week')
    return arrow.Arrow.range('day', start, end)
输出:

In [369]: list(get_week(datetime.datetime.utcnow()))
Out[369]: 
[<Arrow [2015-04-20T00:00:00+00:00]>,
 <Arrow [2015-04-21T00:00:00+00:00]>,
 <Arrow [2015-04-22T00:00:00+00:00]>,
 <Arrow [2015-04-23T00:00:00+00:00]>,
 <Arrow [2015-04-24T00:00:00+00:00]>,
 <Arrow [2015-04-25T00:00:00+00:00]>,
 <Arrow [2015-04-26T00:00:00+00:00]>]
[369]中的
:列表(get_week(datetime.datetime.utcnow())
出[369]:
[,
,
,
,
,
,
]
通过调整,您可以使用Python的内置模块-time、datetime来实现这一点

代码如下:

import time
import datetime

WEEK  = 21
startdate = time.asctime(time.strptime('2008 %d 1' % WEEK, '%Y %W %w'))
startdate = datetime.datetime.strptime(startdate, '%a %b %d %H:%M:%S %Y')
dates = [startdate]
for i in range(1, 7):
    dates.append(startdate + datetime.timedelta(days=i))

print dates

## -- End pasted text --
[datetime.datetime(2008, 5, 26, 0, 0), datetime.datetime(2008, 5, 27, 0, 0), datetime.datetime(2008, 5, 28, 0, 0), datetime.datetime(2008, 5, 29, 0, 0), datetime.datetime(2008, 5, 30, 0, 0), datetime.datetime(2008, 5, 31, 0, 0), datetime.datetime(2008, 6, 1, 0, 0)]

我认为用星期五作为补偿会更容易