Чтобы победить в этом испытании, вам нужно написать кратчайший сценарий «timeago», который выводит число десятилетий, лет, недель, дней, часов, минут и секунд между заданной меткой времени Unix и временем выполнения сценария.
Вы должны указать разницу во времени в «минимальных сроках», например, 1 weekнет 7 days, 9 yearsнет 0 decades 9 years. Вы также должны правильно использовать формы множественного числа, например, 1 dayнет 1 days.
Ваш сценарий должен быть точным с точностью до плюс или минус 1 секунды (поэтому точный второй метод округления не имеет значения).
Time Equivalency Table
1 decade = 10 years
1 year = 31536000 seconds (not technically correct but close enough)
1 week = 7 days
1 day = 24 hours
1 hour = 60 minutes
1 minute = 60 seconds
Вывод должен быть в форме
A decade(s) B year(s) C week(s) D day(s) E hour(s) F minute(s) G second(s)
где A...Gвсе неотрицательные целые числа и sтолько там для множественного числа.
Ноты
- Временная метка всегда будет временем из прошлого. Это может быть отрицательным.
- Ввод и вывод могут быть любыми: stdin / stdout, ввод и возврат значения функции и т. Д.
- Вы не можете использовать какие-либо инструменты, которые уже делают это. то есть, если ваш язык имеет
timesince(timestamp)встроенную функцию, вы не можете использовать эту функцию.
Я в значительной степени отредактировал это, чтобы прояснить его в надежде смягчить несколько глупую битву между новыми пользователями с неясными вопросами и старыми пользователями, которые требуют совершенства. Это был не страшный вопрос (хотя сейчас это может быть слишком похоже на это ).
Учитывая, что с момента последнего ответа прошло достаточно времени, я объявляю Three If By Whisky с его реализацией Ruby 177 байтов победителем этого контекста!