datetime
, можно использовать метод isocalendar()
, который возвращает кортеж из года ISO, номера недели ISO и дня недели ISO. Вот пример:
import datetime
date = datetime.date(2024, 10, 26)
week_number = date.isocalendar()[1]
print(week_number) # Выведет: 43
Или можно использовать strftime()
с директивой %W
(номер недели года, начиная с первого понедельника года) или %U
(номер недели года, начиная с первого воскресенья года):
import datetime
date = datetime.date(2024, 10, 26)
week_number_w = date.strftime("%W")
week_number_u = date.strftime("%U")
print(week_number_w) # Выведет: 43
print(week_number_u) # Выведет: 43
Метод isocalendar()
обычно предпочтительнее, так как он соответствует стандарту ISO 8601.
Для получения номера недели для конкретной даты с использованием модуля datetime
в Python, можно воспользоваться методом isocalendar()
объекта date
или datetime
.
Вот пример кода, демонстрирующий, как это сделать:
import datetime
# Укажите дату, для которой хотите получить номер недели
date_to_check = datetime.date(2023, 10, 27) # Пример: 27 октября 2023 года
# Получаем номер недели, год ISO и день недели ISO
year, week_number, weekday = date_to_check.isocalendar()
# Выводим результат
print(f"Год ISO: {year}")
print(f"Номер недели: {week_number}")
print(f"День недели ISO: {weekday}")
# Альтернативный способ (если нужна только неделя):
week_number_only = date_to_check.isocalendar()[1]
print(f"Номер недели (только): {week_number_only}")
#Работает и с datetime объектом
date_time_to_check = datetime.datetime(2024, 1, 1, 12, 0, 0)
year_dt, week_number_dt, weekday_dt = date_time_to_check.isocalendar()
print(f"Для datetime, номер недели: {week_number_dt}")
Пояснения:
datetime.date(year, month, day)
создает объект date
, представляющий дату.date_to_check.isocalendar()
возвращает кортеж из трех элементов: год ISO, номер недели ISO и день недели ISO.[1]
в кортеже, возвращенном isocalendar()
.Пример вывода:
Год ISO: 2023 Номер недели: 43 День недели ISO: 5 Номер недели (только): 43 Для datetime, номер недели: 1