Що потрібно зробити, щоб виграти цей виклик, - це написати найкоротший сценарій "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 Whiskey із його 177 байтовою реалізацією Ruby!