Những gì bạn cần làm để chiến thắng thử thách này là viết kịch bản "timeago" ngắn nhất tạo ra số thập kỷ, năm, tuần, ngày, giờ, phút và giây giữa dấu thời gian Unix nhất định và thời gian tập lệnh được chạy.
Bạn phải đưa ra sự khác biệt về thời gian trong "điều khoản thấp nhất", ví dụ là 1 week
không 7 days
, 9 years
không 0 decades 9 years
. Bạn cũng phải sử dụng các hình thức số nhiều một cách chính xác, ví dụ 1 day
không 1 days
.
Kịch bản của bạn phải chính xác trong vòng cộng hoặc trừ 1 giây (vì vậy phương pháp làm tròn chính xác thứ hai là không quan trọng).
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
Đầu ra phải có dạng
A decade(s) B year(s) C week(s) D day(s) E hour(s) F minute(s) G second(s)
trong đó A...G
tất cả các số nguyên không âm và s
chỉ có ở đó cho số nhiều.
Ghi chú
- Dấu thời gian sẽ luôn là một thời gian từ quá khứ. Nó có thể là tiêu cực.
- Đầu vào và đầu ra có thể là bất cứ điều gì hợp lý: stdin / stdout, đầu vào hàm và giá trị trả về, v.v.
- Bạn không thể sử dụng bất kỳ công cụ đã làm điều này. tức là nếu ngôn ngữ của bạn có
timesince(timestamp)
chức năng được tích hợp sẵn thì bạn không thể sử dụng chức năng đó.
Tôi đã chỉnh sửa rất nhiều điều này để làm cho nó rõ ràng hơn với hy vọng sẽ làm dịu cuộc chiến có phần ngớ ngẩn giữa những người dùng mới với những câu hỏi không rõ ràng và những người dùng cũ đòi hỏi sự hoàn hảo. Đó không phải là một câu hỏi khủng khiếp (mặc dù bây giờ nó có thể quá giống với điều này ).
Cho rằng thời gian đã trôi qua kể từ câu trả lời cuối cùng, tôi tuyên bố Three If By Whiskey với 177 byte Ruby thực hiện, người chiến thắng trong bối cảnh này!