Предмет: Информатика, автор: elfoxleo

Ваша задача — написать программу, которая переводит число во время в читабельном виде.

Пользователь должен ввести число больше 0 и меньше 8639999.



Число необходимо перевести в день, часы, минуты и секунды.

Ну и дополнительной задачей является — забота о выводе.

Слово "день" подбирается на основе кол-ва дней, а часы, минуты и секунды должны заполняться

нулями при одноцифровых значениях.

Пример:

0 -> 0 дней, 00:00:00

224930 -> 2 дня, 14:28:50

466289 -> 5 дней, 09:31:29

8639999 -> 99 дней, 23:59:59

22493 -> 0 дней, 6:14:53

7948799 -> 91 день, 23:59:59


danilka228uy: Язык ?
elfoxleo: пайтон

Ответы

Автор ответа: trueberry17
1

Ответ:

Python Code:
# Без росписи по дням

timeConvert = lambda sec: f"{sec//60//60%24:02}:{sec//60%60:02}:{sec%60:02}" if sec>0 else '00:00:00'

Python Code:
# С росписью дней

def timeConvert(sec):

   day = sec//60//60//24

   if day % 10 == 1 and day % 100 != 11:

       addit = ' день, '

   elif 2 <= day % 10 <= 4 and (day % 100 < 10 or day % 100 >= 20):

       addit = ' дня, '

   else:

       addit = ' дней, '

   return str(day)+addit+(f'{sec//60//60%24:02}:{sec//60%60:02}:{sec%60:02}' if sec>0 else '00:00:00')

# Тесты с задания:

print(timeConvert(0)) # -> 00:00:00

print(timeConvert(224930)) # -> 14:28:50

print(timeConvert(466289)) # -> 09:31:29

print(timeConvert(8639999)) # -> 23:59:59

print(timeConvert(22493)) # -> 06:14:53

print(timeConvert(7948799)) # -> 23:59:59

Объяснение:

Функция - timeConvert: если sec>0 выполняются действия дальше, если меньше - выводит '00:00:00'. Сам расчёт времени выглядит как-то так:

Дни = Секунды // 60 // 60 // 24

Часы = Секунды // 60 // 60

Минуты = Секунды // 60

После "%" просто указано максимальное число, после ":" - количество символов.

Приложения:

trueberry17: Если что-то непонятно или выполнила не по условию, обращайся - перепишу, объясню
trueberry17: А, там еще дни/дней/дня/день.. Сейчас допишу
trueberry17: Должно работать. При копировании прошу сверить табуляцию со скрином =)
elfoxleo: привет, а можешь помочь с другим заданием? не могу там сообразить до конца что к чему
celvinhariz89: а теперь вопрос как сделать что бы перед ответом пользователь вводил число я чет прям туплю
trueberry17: celvinhariz89, после функции введи
print(timeConvert(int(input('Введите время в секундах: '))))
trueberry17: хотя для удобства можно прописать print в самой функции
Похожие вопросы
Предмет: Русский язык, автор: Daniellarussel
Предмет: Математика, автор: 1kristinka
Предмет: Русский язык, автор: himixrus