Tulis fungsi atau program yang menerima tanggal (sebagai string dalam YYYY-MM-DDformat) sebagai input dan mengembalikan nilai kebenaran jika tanggal itu "alfabet," dan nilai falsey jika bukan.
Tanggal alfabet adalah tanggal yang bulan, hari dan tahunnya dalam urutan alfabet ketika dinyatakan sebagai string (dan bila dianggap secara khusus dalam urutan M - D - Y). Misalnya, 26 September 2018 adalah tanggal alfabet:
September 26th 2018 -> September twenty-sixth two thousand eighteen
September
Twenty-sixth
Two thousand eighteen
Cara lain untuk memikirkan tantangan ini: "apakah unsur-unsur dari tanggal tertentu diurutkan secara leksikal?"
Catatan:
- 2018 direpresentasikan sebagai "dua ribu delapan belas," bukan "dua puluh delapan belas" atau "dua nol satu delapan." Sebagai contoh lain, tahun 1456 akan direpresentasikan sebagai "seribu empat ratus lima puluh enam," bukan "empat belas lima puluh enam."
- 26 diwakili sebagai "dua puluh enam," bukan "dua puluh enam."
- Setiap elemen tanggal dianggap sebagai keseluruhan. Inilah sebabnya mengapa 2018 tidak secara otomatis gagal meskipun "e" dalam delapan belas muncul sebelum "t" dalam dua.
Tanggal-tanggal berikut ini tidak menurut abjad:
- 2 September 2018 ("kedua" harus lebih cepat dari "September")
- 30 April 4000 ("empat ribu" harus mengurutkan dari "ketiga puluh")
Aturan tambahan:
- Anda akan menerima tanggal sebagai string, berformat seperti
YYYY-MM-DD. Tahun akan selalu memiliki empat digit, dan bulan dan hari akan selalu memiliki dua digit masing-masing. Padding-nol tidak terwakili dalam konversi string (mis., '2000-01-01' adalah 'Januari pertama dua ribu' seperti yang Anda harapkan). - Anda dapat mengasumsikan bahwa tanggal akan selalu valid (no 30 Februari, no Smarch 1) dan bahwa nilai tahun akan positif (tidak ada tanggal SM), tetapi tanggal tersebut mungkin jauh di masa depan ("pada tahun
duasembilan ribu..."). - Anda harus mengembalikan nilai truey atau falsey, tidak harus boolean
TrueatauFalse. Jika Anda melakukan ini dalam Javascript dan ingin kembali'0'dan0itu bagus. Tentu saja, jika Anda ingin mengembalikan boolean, silakan saja. - Celah standar dilarang.
- Ini adalah
code-golf
Lebih Banyak Contoh Tanggal Alfabet
- 2066-01-02 (Januari kedua, dua ribu enam puluh enam)
- 1000-04-08 (delapan April, seribu)
- 6000-08-01 (1 Agustus, enam ribu)
Lebih Banyak Contoh Tanggal Non-Alfabet
- 1066-01-02 (Januari kedua, seribu enam puluh enam)
- 1000-04-07 (Ketujuh April, seribu)
- 8000-08-01 (1 Agustus, delapan ribu)