@Ninzalo

Как получить список дат на неделе?

Здравствуйте,
задача такая: получить список дат на неделе
пример ввода: "2022-4-3"
пример вывода: [2022-4-28, 2022-4-29, 2022-4-30, 2022-4-31, 2022-4-1, 2022-4-2, 2022-4-3]
как это быстрее и эффективнее всего сделать?
  • Вопрос задан
  • 278 просмотров
Пригласить эксперта
Ответы на вопрос 1
@twistfire92
Python backend developer
Если удобно вводить даты как '2022-04-03', т.е. в ISO формате, то можно делать так:

import calendar
import datetime

def weekdays(input_day):
	my_day = datetime.date.fromisoformat(input_day)
	c = calendar.Calendar()
	for week in c.monthdatescalendar(2022, 4):
	    if my_day in week:
	    	return[f'{weekday.year}-{weekday.month}-{weekday.day}' for weekday in week]

print(weekdays('2022-04-03'))

Если момент с входным форматом принципиален, то строку
my_day = datetime.date.fromisoformat(input_day)
можно заменить на
year, month, day = map(int, input_day.split('-'))
my_day = datetime.date(year, month, day)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы