Birincisini birkaç yıl önce gördüğümden beri, her zaman zamanın aslında anlamlı bir cümleye kelimelerle aydınlanıp yakılmamakla hecelendiği bu tür bir söz saati tarafından boyun eğdirildim.
O saatte görüntülenen metin aşağıdaki gibidir.
IT IS HALF TEN
QUARTER TWENTY
FIVE MINUTES TO
PAST TWO THREE
ONE FOUR FIVE
SIX SEVEN EIGHT
NINE TEN ELEVEN
TWELVE O'CLOCK
Göreviniz böyle bir çalışma saati yazmak. Kelimeler, yalnızca geçerli saati yazdırmakla ilgilenseler halinde yanar. Aksi takdirde, yanarlar. Kelimeler yazdırılarak "aydınlatılır" ve kelimenin yerine geçen boşluklarla değiştirilerek "aydınlatılır".
Örnek: Geçerli saat 17:23 ise, yazdırılan metin tam olarak aşağıdaki olmalıdır:
IT IS
TWENTY
FIVE MINUTES
PAST
FIVE
kurallar
- Yazdırılan süre 12 saattir, ancak AM / PM'dir.
- Yuvarlama sadece dakika bazında yapılır (saniye tamamen önemsizdir). Yuvarlama 5'in en yakın katına yapılır. Yani, örneğin, 17:52:38 gerçekten 17:55'e yakın olsa da, saniyeler önemsiz olduğundan, 17:52 aslında 17:50'ye yuvarlanır, ve basılan metin "ALTI DAKİKA ÇALIŞIYOR" (ilgili aralıklarla). Yani
XX
beşte beş ise,XX
HH: (XX-2): 00 ila HH: (XX + 2): 59 arasında kullanılacaktır. SözcükMINUTES
eğer görünmelidirFIVE
,TEN
yaTWENTY
( "TO" veya "GEÇMİŞ" öncesi) dakikalar bölümünde aydınlatılır. - Tüm alakasız kelimeler, metni yukarıdaki şablonda bulunduğu yerde tutmak için gerektiği kadar boşlukla değiştirilir. Sondaki boşluklar kırpılabilir. Metni beklenen pozisyonda tutmaya ilişkin boşluklar tutulmalıdır.
Sondaki çizgiler de kesilebilir. İlgili boş satırların görünmesi için hala gereklidir. Örnek:
IT IS TEN MINUTES PAST TWO
Yanar etmeyin
TEN
ilk satırda veyaFIVE
bu değerler saate atıfta zaman üçüncü satırda.- Bir girişi kabul edebilirsiniz. Bir girdiyi kabul ederseniz, girdi istediğiniz herhangi bir formatta (dize, tamsayılar listesi, yerel saat türünüzü destekleyin,…) geçerli bir formatta basma zamanı olacaktır; yazdırmak için. Girişi desteklemiyorsanız, geçerli saati kullanmanız gerekir. Her ikisini de destekliyorsanız, bu daha iyidir, ancak bonus yoktur;)
- Kodunuz bir program, bir işlev, bir lambda olabilir, ancak snippet olmayabilir.
- Diliniz herhangi bir şekilde yazdırmayı destekliyorsa , sonucu yazdırması gerekir (bir dosyada, standart çıktıda, sorun değil). Diliniz herhangi bir şekilde yazdırmayı desteklemiyorsa, beklenen metni yalnızca "geri döndürmesine" izin verilir. Sonuç, ikisinin karışımı değil, tamamen büyük veya küçük harf olabilir.
- Standart boşluklar uygulanır.
- Bu kod-golf yani en kısa kod kazanır!
- Mümkün olan ölçülerde, lütfen kendi dilinizin çevrimiçi tercümanına bir link verin.
Test durumları
Input: <no input> (the current local time is 19:20)
Output:
IT IS
TWENTY
MINUTES
PAST
SEVEN
Input: 13:15
Output: (empty line is being printed)
IT IS
QUARTER
PAST
ONE
Input: 13:58
Output: (rounding)
IT IS
TWO
O'CLOCK
Input: 14:30
Output: (half is always a edge-case)
IT IS HALF
PAST TWO
Input: 15:35
Output: (light up "TO")
IT IS
TWENTY
FIVE MINUTES TO
FOUR
Input: 10:00
Output: (do not use the TEN or FIVE on the first line when referring to the hours)
IT IS
TEN
O'CLOCK
Input: 12:00
Output: (O'CLOCK and a lot of empty lines)
IT IS
TWELVE O'CLOCK