import uptime as upt
m, s = divmod(upt.uptime(), 60)
h, m = divmod(m, 60)
d, h = divmod(h, 24)
print(f"{int(d)} дней {int(h)} часов {int(m)} минут {int(s)} секунд")
from pytils import numeral
import uptime as upt
m, s = divmod(upt.uptime(), 60)
h, m = divmod(m, 60)
d, h = divmod(h, 24)
print("%s %s %s %s" % (
numeral.get_plural(d, "день, дня, дней"),
numeral.get_plural(h, "час, часа, часов"),
numeral.get_plural(m, "минута, минуты, минут"),
numeral.get_plural(s, "секунда, секунды, секунд")
)
)
1. После числительного один и составных числительных, оканчивающихся на один, ставится существительное в именительном падеже.
2. После числительных два, три, четыре и составных числительных, оканчивающихся на два, три, четыре, ставится существительное в родительном падеже единственного числа.
3. После числительного пять, шесть и т.д. и после слов много, мало, несколько, сколько и т.д. ставится существительное в родительном падеже множественного числа.
def get_plural(amount, variants, absence=None):
assert len(variants) == 3
amount = abs(amount)
if amount % 10 == 1 and amount % 100 != 11:
variant = 0
elif 2 <= amount % 10 <= 4 and (amount % 100 < 10 or amount % 100 >= 20):
variant = 1
else:
variant = 2
plural = variants[variant]
if amount or absence is None:
return "%d %s" % (amount, plural)
else:
return absence