Bu meydan okumayı kazanmak için yapmanız gereken şey, belirli bir Unix zaman damgası ile komut dosyasının çalıştırıldığı zaman arasında onlarca yıl, yıl, hafta, gün, saat, dakika ve saniye sayısını veren en kısa "timeago" komut dosyasını yazmaktır .
Sen örneğin, "en düşük terimleri" saat farkını vermelidir 1 weekdeğil 7 days, 9 yearsdeğil 0 decades 9 years. Ayrıca örneğin, doğru çoğul formları kullanmanız gerekir 1 daydeğil 1 days.
Komut dosyanız artı veya eksi 1 saniye içinde doğru olmalıdır (bu nedenle tam ikinci yuvarlama yöntemi önemsizdir).
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
Çıktı şu biçimde olmalıdır:
A decade(s) B year(s) C week(s) D day(s) E hour(s) F minute(s) G second(s)
burada A...Gnegatif olmayan tamsayılar vardır ve syalnızca çoğullar için vardır.
notlar
- Zaman damgası her zaman geçmişten bir zaman olacaktır. Olumsuz olabilir.
- Giriş ve çıkış makul bir şey olabilir: stdin / stdout, işlev giriş ve dönüş değeri, vb.
- Bunu zaten yapan herhangi bir araç kullanamazsınız. örneğin, dilinizde
timesince(timestamp)yerleşik bir işlev varsa, bu işlevi kullanamayabilirsiniz.
Bunu, net olmayan soruları olan yeni kullanıcılar ve mükemmellik isteyen eski kullanıcılar arasındaki biraz saçma savaşı varsaymayı umut etmek için bunu büyük ölçüde düzenledim. (Şimdi çok benzer olabilir ama Korkunç bir soru değildi bu ).
Son cevaptan bu yana yeterli zaman geçtiği göz önüne alındığında , 177 byte Ruby uygulamasıyla Three If By Whiskey bu bağlamın galibi ilan ediyorum !