@StenMarsh1337

Не выводить день недели если она в след.месяце?

Всем привет, подскажите как сделать проверку чтобы не выводило например
1. Что конкретно делает код сейчас: дни недели кроме тех что уже сзади сегодняшнего дня
2. Что нужно: чтобы не выводило дни недели те которые уже в следующем месяце

bot.send_message(chat_id=message.chat.id,
                                  text=f"На який день?",
                                  reply_markup=day(user_id))

def day(user_id):
    markup = types.InlineKeyboardMarkup(row_width=1)
    d = datetime.now()
    wd = date.weekday(d)
    print(wd)
    days = ["Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"]
    print(days[wd])
    my_days = days[d.weekday() + 1:]
    for i in my_days:
        markup.add(
            types.InlineKeyboardButton(text=i, callback_data=f"2")
        )
    return markup
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
@Wispik
Первое, что приходит в голову: считаем количество дней до конца месяца и обрезаем список my_days, если его длина больше чем кол-во дней.
import calendar

...
days_month = calendar.monthrange(d.year, d.month)[1]
if len(my_days) > (days_month - d.day):
    my_days = my_days[:days_month - d.day]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы