У меня есть номер недели по стандарту ISO 8601 (например, 201801), соответствующий 1-й неделе 2018 года. Как лучше всего использовать Pyth? - PullRequest
0 голосов
/ 17 мая 2018

У меня есть номер недели ISO 8601, скажем, 201801 - соответствующий неделе 1 года 2018.

Как мне извлечь даты в пределах недели, используя python?

1 Ответ

0 голосов
/ 17 мая 2018

Я бы получил воскресенье этой недели, а затем дал бы 7 дней, начиная с этого. В зависимости от того, что вы хотите сделать на 52 неделе, вы можете удалить break

from datetime import datetime, timedelta

def days_from_weekstr(weekstr):
    sunday = datetime.strptime(weekstr + "-0", "%Y%W-%w")
    year = sunday.year
    for i in range(7):
        day = sunday + timedelta(1) * i
        if day.year != year:
            break
        yield day.date()

Использование:

>>> list(days_from_weekstr("201801"))
[datetime.date(2018, 1, 7), datetime.date(2018, 1, 8), datetime.date(2018, 1, 9), datetime.date(2018, 1, 10), datetime.date(2018, 1, 11), datetime.date(2018, 1, 12), datetime.date(2018, 1, 13)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...