@baanzhaev

Как сделать окончания в пайтоне?

как сделать так чтобы писало не
Вы еще не готовы работать, нужно отдохнуть еще 21часов 33 минут
суть в том что при любом числе пишет часов, хотя должно в данном случае писать 21 час 33 минуты
вот часть скрипта:
# Команда: /money
@dp.message_handler(commands=['money'])
async def cmd_money(message: types.Message, state: FSMContext):
    chat_type = message.chat.type
    if chat_type == types.ChatType.PRIVATE:
        keyboard = types.InlineKeyboardMarkup()
        url_button = types.InlineKeyboardButton(text="Добавить бота в группу",
                                                url=
        keyboard.add(url_button)
        await message.reply("Использовать эту команду возможно только в группе!", reply_markup=keyboard)
    elif chat_type == types.ChatType.GROUP:
        user_id = str(message.from_user.id)
    add_user(message)
    chat_type = message.chat.type
    chat_id = str(message.chat.id)
    user_id = str(message.from_user.id)
    if chat_type not in ['supergroup', 'group']:
        await message.reply("Использовать эту команду возможно только в группе!")
        return
    
    last_money_time = users[user_id][chat_id].get("last_money_time", 0)
    current_time = time.time()
    time_diff = current_time - last_money_time

    if time_diff < 86400:
        remaining_time = 86400 - int(time_diff)
        formatted_time = format_time(remaining_time)
        await message.answer(f"Вы еще не готовы работать, нужно отдохнуть еще {formatted_time}")
        return
    user_balance = users[user_id][chat_id]["balance"]
    rank = users[user_id][chat_id]["rank"]
    income = ranks[rank]["income"]
    next_rank = get_next_rank(rank, chat_id)
    if next_rank:
        next_required_balance = ranks[next_rank]["required_balance"]
        diff_to_next_rank = next_required_balance - user_balance
        if diff_to_next_rank < 0:
            users[user_id][chat_id]["rank"] = next_rank
    balance_change = random.randint(4, 12)
    percent = int(balance_change*(income/100))
    user_balance += balance_change+percent
    users[user_id][chat_id]["balance"] = user_balance

    users[user_id][chat_id]["last_money_time"] = current_time
    save_data(ranks, users, admins)

    await message.answer(f"Ты получил *{balance_change}$*\n"
                         f"Твой баланс: *{user_balance}$*\n"
                         "*Приходи завтра чтобы заработать еще!*", parse_mode='Markdown')
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Открываем функцию format_time и правим ее до нужного состояния
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Dr_Elvis
@Dr_Elvis Куратор тега Python
В гугле забанен
def plural(n):
    # Подсказка: 1 час, 3 часа, 5 часов
    pural = ['час', 'часа', 'часов']
    if n % 10 == 1 and n % 100 != 11:
        return pural[0]
    elif 2 <= n % 10 <= 4 and (n % 100 < 10 or n % 100 >= 20):
        return pural[1]
    return pural[2]
Ответ написан
Комментировать
Arzamasov
@Arzamasov
Python Developer.
Стандартная задача на любом дефолтном курсе. Правильным решением будет самому разобраться и написать эту функцию.
Ответ написан
Ваш ответ на вопрос

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

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