S
S
StenMarsh13372021-02-09 14:58:17
Python
StenMarsh1337, 2021-02-09 14:58:17

Displaying the date incorrectly?

Hello everyone, I don’t understand why it gives the wrong date?

def day(user_id):
    markup = types.InlineKeyboardMarkup(row_width=1)
    d = datetime.now()
    now_day_1 = d - timedelta(days=d.weekday())
    dates = [(now_day_1 + timedelta(days=d)).strftime("%m/%d/%Y") for d in range(7)]
    days = ["Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Восскресенье"]
    my_days = days[d.weekday() + 1:]
    my_days1 = dates[d.weekday() + 1:]
    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]
    if len(my_days1) > (days_month - d.day):
        my_days1 = my_days1[:days_month - d.day]
    for j in my_days1:
        for i in my_days:
            markup.add(types.InlineKeyboardButton(text=i+j, callback_data=j))
        return markup

602278d2aa14e470505553.png

Answer the question

In order to leave comments, you need to log in

2 answer(s)
P
Pavel Trushin, 2021-02-09
@StenMarsh1337

I think adding information to the buttons you will do yourself)

import time
def day():
    month_week = {
        'Jan': '01',
        'Feb': '02',
        'Mar': '03',
        'Apr': '04',
        'May': '05',
        'Jun': '06',
        'Jul': '07',
        'Aug': '08',
        'Sep': '09',
        'Oct': '10',
        'Nov': '11',
        'Dec': '12',
        'Mon': 'Понедельник',
        'Tue': 'Вторник',
        'Wed': 'Среда',
        'Thu': 'Четверг',
        'Fri': 'Пятница',
        'Sat': 'Суббота',
        'Sun': 'Воскресенье'
    }
    time_now = time.time()
    i, month_end = 0, None
    for x in range(0, 31+1):
        date = str(time.ctime(time_now+i)).split()
        week, month, day, year = month_week[f"{date[0]}"], month_week[f"{date[1]}"], date[2], date[4]
        #День недели, месяц, день, год
        if month_end is None:
            month_end = month
        if month == month_end:
            print(f'{week} - {day}/{month}/{year}')
            i += 86400
day()

Z
zexer, 2021-02-09
@zexer

Maybe you should take return out of the loop?
In general, you would be engaged in the normal naming of variables, otherwise it is impossible to read this.
You may also need to do this
text=i+' ' + j

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question