2015-04-30 3 views
1
datetime.date(2010, 1, 1).isocalendar()[1] 

дает номер недели 53 начиная с 1 января 2010 был в неделю, которая началась в 2009 г. Однако, я хотел бы начать 1 января 2010 в неделю 1. Есть ли какие-либо опции в isocalendar даты и времени сделать это?Преобразование даты питона в неделю

Если я следую за решение в How can I get the current week using Python?, я получаю 53 в результате

+0

Нет, просто вычтите 52. –

+2

Возможный дубликат [Как я могу получить текущую неделю с помощью Python?] (Http://stackoverflow.com/questions/2003841/how-can-i-get-the-current- week-using-python) – KevinDTimm

+0

Не дубликат, решение там даст 53 в качестве результата, а не 1, что я хочу – user308827

ответ

4

Подсчитать количество дней с первого года, целочисленного-разделить на 7 и добавить 1:

>>> import datetime as DT 
>>> (DT.date(2010,1,1)-DT.date(2010,1,1)).days // 7 + 1 
1 

Это понятие номер недели сильно отличается от ISO week definition, поэтому вы не сможете найти этот вариант в isocalendar.

+0

спасибо! ваше решение делает это настолько очевидным! – user308827

0

Если вы собираетесь получать данные в полных недель, так как точки, вы можете моднику это число на количество недель в году (52), чтобы получить остаток (т.е., сколько недель в году вы):

>>> 53 % 52 
>>> 1 
>>> 925 % 52 
>>> 41 
Смежные вопросы