Я читал сообщения о сообщениях методов преобразования входного количества секунд, которые должны выводиться как формальная строка с заданными длительностью (часами, минутами, секундами) , Но я хочу знать, как отформатировать его так, чтобы он учитывал особенности/плюрализацию, когда я знаю, например, 62
секунд следует читать как "1 minute and 2 seconds"
, а не 120
секунд, что просто "2 minutes"
.Формат считываемого времени (с хорошей грамматикой!)
Другим критерием является то, что он должен вернуть "now"
, если секунды 0
.
Вот мой код до сих пор:
def format_duration(seconds, granularity = 2):
intervals = (('hours', 3600), ('minutes', 60), ('seconds', 1))
human_time = []
for name, count in intervals:
value = seconds // count
if value:
seconds -= value * count
if value == 1:
name = name.rstrip('s')
human_time.append("{} {}".format(value, name))
else:
return "now"
return ','.join(human_time[:granularity])
Пожалуйста, помогите! Благодаря!
MJ
это на самом деле очень полезно - в настоящее время мой код отсутствует правильный «и» конъюнкция, скажем, для примера, как «1 минуты и 2 секунды ». Я думал, что это исправлено с помощью настройки 10, да? Есть идеи? «И» должно быть там в зависимости ... –
Думаю, вы хотите «и» для последнего соединения и запятые для всего, прежде чем, чтобы он выходил «2 часа, 1 минута и 58 секунд»? – Efferalgan
точно! и это, конечно, применимо и к более коротким срокам, когда я не составлял часов, минут и секунд. Есть идеи? –