Urutan tanggal format adalah salah satu masalah paling kompleks dan memecah belah yang dihadapi dunia saat ini. Beberapa dari kita dengan keras berargumen bahwa Bulan / Hari / Tahun itu tepat, mengingat itulah cara kita mengatakan tanggal dengan keras. Yang lain dengan keras menyatakan bahwa Hari / Bulan / Tahun adalah yang terbaik, karena menempatkan syarat dalam urutan naik dari durasi yang mereka wakili.
Cukup sudah. Komputer dapat menyelesaikan perselisihan ini secara sederhana dan adil. Kode Anda, fungsi atau program lengkap, akan mengambil string tanggal yang dibatasi oleh garis miring, misalnya 12/1/2015
. Perhatikan ini adalah format yang tepat, tanpa angka nol di depan dan dengan tahun empat digit di akhir.
- Jika itu pasti Bulan / Hari / Tahun, mis.
10/31/1998
, Tampilkan representasi teks dari tanggal tersebut dalam format yang tepat ini, dengan nama bulan penuh, hari, dan tahun:October 31, 1998
- Jika itu pasti Hari / Bulan / Tahun, misalnya
25/12/1989
, output jenis yang sama representasi teks:December 25, 1989
. - Jika ambigu apakah Bulan / Hari / Tahun atau Hari / Bulan / Tahun, buat tanggal yang menyelesaikan ambiguitas dengan menggabungkan dua tanggal yang mungkin sebagai berikut:
- Buat nama bulan baru dengan mengambil paruh pertama nama bulan sebelumnya dan tambahkan paruh kedua bulan berikutnya . Selama berbulan-bulan dengan panjang ganjil, babak pertama mendapat surat tambahan. Untuk menjadi eksplisit, yang bagian pertama dari bulan yang
Janu
,Febr
,Mar
,Apr
,Ma
,Ju
,Ju
,Aug
,Septe
,Octo
,Nove
, danDece
dan oleh karena itu bagian kedua adalahary
,uary
,ch
,il
,y
,ne
,ly
,ust
,mber
,ber
,mber
, danmber
. - Hitung hari dengan rata-rata dua hari yang mungkin, letakkan lantai ketika rata-rata bukan bilangan bulat.
- Keluarkan representasi teks dari tanggal ini, misalnya untuk
10/8/2011
, keluaranAugber 9, 2011
.
- Buat nama bulan baru dengan mengambil paruh pertama nama bulan sebelumnya dan tambahkan paruh kedua bulan berikutnya . Selama berbulan-bulan dengan panjang ganjil, babak pertama mendapat surat tambahan. Untuk menjadi eksplisit, yang bagian pertama dari bulan yang
Jika tanggal input tidak boleh Bulan / Hari / Tahun atau Hari / Bulan / Tahun (misalnya 13/13/2013
atau bahkan 2/30/2002
), perilaku apa pun dapat diterima. Golf kode ini, kode terpendek menang!
Kasus uji:
10/31/1998
memberi October 31, 1998
25/12/1989
memberi December 25, 1989
10/8/2011
memberi Augber 9, 2011
8/5/1957
memberi Maust 6, 1957
9/12/2012
(anehnya) memberi September 10, 2012
1/1/2000
memberi January 1, 2000
without leading zeroes and with a four-digit year at the end
menyiratkanyear >= 1000