Apa yang perlu Anda lakukan untuk memenangkan tantangan ini adalah menulis skrip "timeago" terpendek yang menampilkan jumlah dekade, tahun, minggu, hari, jam, menit, dan detik antara cap waktu Unix yang diberikan dan waktu skrip dijalankan.
Anda harus memberikan perbedaan waktu dalam "istilah terendah", mis. 1 week
Tidak 7 days
, 9 years
tidak 0 decades 9 years
. Anda juga harus menggunakan bentuk jamak dengan benar, misalnya 1 day
tidak 1 days
.
Skrip Anda harus akurat dalam plus atau minus 1 detik (sehingga metode pembulatan kedua yang tepat tidak penting).
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
Outputnya harus dalam bentuk
A decade(s) B year(s) C week(s) D day(s) E hour(s) F minute(s) G second(s)
di mana A...G
semua bilangan bulat non-negatif dan s
hanya ada untuk bentuk jamak.
Catatan
- Stempel waktu akan selalu berupa waktu dari masa lalu. Mungkin negatif.
- Input dan output mungkin masuk akal: stdin / stdout, input fungsi dan nilai pengembalian, dll.
- Anda tidak boleh menggunakan alat apa pun yang sudah melakukan ini. yaitu jika bahasa Anda memiliki
timesince(timestamp)
fungsi bawaan, Anda mungkin tidak menggunakan fungsi itu.
Saya telah sangat mengedit ini untuk membuatnya lebih jelas dengan harapan untuk meredakan pertempuran yang agak konyol antara pengguna baru dengan pertanyaan tidak jelas dan pengguna lama yang membutuhkan kesempurnaan. Itu bukan pertanyaan yang mengerikan (meskipun sekarang mungkin terlalu mirip dengan ini ).
Mengingat waktu yang cukup terlewati sejak jawaban terakhir, saya menyatakan Three If By Whiskey dengan 177 byte implementasi Ruby pemenang konteks ini!