2015-01-22 5 views
0

Я пишу сценарий, где пользователю нужно ввести номер недели, и на основе этого будет выполняться процедура. Тем не менее, я столкнулся с небольшой вопрос, я знаю, что могу получить номер недели через что-то вроде этого:Получить дату на основе номера недели (python)

>>> a=datetime.datetime.now() 
>>> a 
datetime.datetime(2015, 1, 22, 15, 51, 57, 820058) 
>>> a.isocalendar()[1] 
4 

Но я не могу найти, как это сделать в обратном направлении. Кроме того, дата, которую я требую, должна быть в воскресенье этой недели в 6:00 утра. Как только у меня есть элемент datetime, я могу просто сделать

begin_date = datetime.datetime.strptime(a, "%Y-%m-%d %H:%M:%S") 

Чтобы получить формат, который я хочу. Я все еще пропускаю шаг, чтобы получить дату. Есть предположения?

ответ

1

Мы создаем начальный DateTime в течение 2015 года (2014-12-28 6:00:00 --1st воскресенье 1-й недели), и timedelta объект 7 дней:

w0 = datetime.datetime(2014,12,28,6) 
d7 = datetime.timedelta(7) 

Тогда вы можете просто добавить кратный объект timedelta к исходной дате, как так (п будет ваш номер недели):

w0+(d7*n) 
0
>>> now = datetime.datetime.now() 
>>> start = datetime.datetime(2015, 1,1) 
>>> (now - start).days // 7 
3 
+0

код только ответы отпугивают. Добавьте описание к вашему ответу. – mbomb007

Смежные вопросы