Добрый день!
Версия Питона 3.11
Windows 10
Нужна помощь в задачке.
Ваша задача — написать программу, которая переводит число в формат времени в читабельном виде.
Пользователь должен ввести число больше 0 и меньше 8639999.
Число, которое является количеством секунд, необходимо перевести в дни, часы, минуты и секунды.
Ну и дополнительной задачей является — забота о выводе.
Слово "день" подбирается на основе кол-ва дней, а часы, минуты и секунды должны заполняться нулями при одноцифровых значениях.
Пример:
0 -> 0 дней, 00:00:00
224930 -> 2 дня, 14:28:50
466289 -> 5 дней, 09:31:29
950400 -> 11 дней, 00:00:00
1209600 -> 14 дней, 00:00:00
8639999 -> 99 дней, 23:59:59
22493 -> 0 дней, 06:14:53
7948799 -> 91 день, 23:59:59
Подсказка: в одной минуте 60 сек. , в одном часе 60*60 сек, в одних сутках 24*60*60 сек. Т.е. используя функцию divmod или методы деления // и % вам необходимо найти соотвествующее кол-во дней, часов, минут, а то что останется - это секунды, которые меньше 60
Дополнить ведущими нулями можно с помощью метода zfill(2)
Происходит загвоздка в выводе "день ,дня и дней"
Например, ввожу 950400
и выбивает:
11 , 00:00:00
а вот слово "дней", где то потерялось
ошибка где то в выделенном фиалетовом цвете(я так думаю)
Версия Питона 3.11
Windows 10
Нужна помощь в задачке.
Ваша задача — написать программу, которая переводит число в формат времени в читабельном виде.
Пользователь должен ввести число больше 0 и меньше 8639999.
Число, которое является количеством секунд, необходимо перевести в дни, часы, минуты и секунды.
Ну и дополнительной задачей является — забота о выводе.
Слово "день" подбирается на основе кол-ва дней, а часы, минуты и секунды должны заполняться нулями при одноцифровых значениях.
Пример:
0 -> 0 дней, 00:00:00
224930 -> 2 дня, 14:28:50
466289 -> 5 дней, 09:31:29
950400 -> 11 дней, 00:00:00
1209600 -> 14 дней, 00:00:00
8639999 -> 99 дней, 23:59:59
22493 -> 0 дней, 06:14:53
7948799 -> 91 день, 23:59:59
Подсказка: в одной минуте 60 сек. , в одном часе 60*60 сек, в одних сутках 24*60*60 сек. Т.е. используя функцию divmod или методы деления // и % вам необходимо найти соотвествующее кол-во дней, часов, минут, а то что останется - это секунды, которые меньше 60
Дополнить ведущими нулями можно с помощью метода zfill(2)
Происходит загвоздка в выводе "день ,дня и дней"
Например, ввожу 950400
и выбивает:
11 , 00:00:00
а вот слово "дней", где то потерялось
Код:
seconds = int(input(" ВВедите любое число больше 0 и меньше 8639999: "))
minutes = 0
hours = 0
days = 0
day = str()
a_zero = str()
b_zero = str()
c_zero = str()
while seconds >= 60:
seconds -= 60
minutes += 1
while minutes >= 60:
minutes -= 60
hours += 1
while hours >= 24:
hours -= 24
days +=1
if seconds / 10 < 1:
c_zero = str(0)
if minutes / 10 < 1:
b_zero = str(0)
if hours / 10 < 1:
a_zero = str(0)
if days % 10 >= 5:
day = "дней"
if days % 10 > 1 and days % 10 < 5:
day = "дня"
if days % 1 == 1:
day = "день"
print(f"{days} {day}, {a_zero}{hours}:{b_zero}{minutes}:{c_zero}{seconds}")
ошибка где то в выделенном фиалетовом цвете(я так думаю)