Tarihlerin biçimlendirme sırası, dünyanın bugün karşılaştığı en karmaşık ve bölücü konulardan biridir. Bazılarımız, Ay / Gün / Yıl'ın uygun olduğunu iddia ediyor, bu yüzden tarihler yüksek sesle söyleniyor. Diğerleri, Gün / Ay / Yıl'ın en iyi olduğunu yüksek sesle ilan eder, çünkü terimleri temsil ettikleri sürenin artan sırasına koyar.
Yeter artık. Bilgisayarlar bu anlaşmazlığı basit ve adil bir şekilde çözebilir. Kodunuz, tam bir işlev veya program, eğik çizgilerle ayrılmış bir tarih dizesi alır, örn 12/1/2015
. Bunun, sıfır olmadan ve sonunda dört basamaklı bir yıl içeren tam biçim olduğunu unutmayın.
- E? Er kesinlikle Ay / Gün / Yıl, örneğin
10/31/1998
, çıkış tam ay adı, gün ve yıl ile bu kesin biçimde bu tarihten, bir metin gösterimi:October 31, 1998
- E? Er kesinlikle Gün / Ay / Yıl, örneğin
25/12/1989
, çıkış metin gösterimi aynı tür:December 25, 1989
. - Ay / Gün / Yıl veya Gün / Ay / Yıl olup olmadığı belirsizse, olası iki tarihi aşağıdaki gibi birleştirerek belirsizliği gideren bir tarih verin:
- Adına ilk yarısını alarak yeni bir ay adı oluşturun önceki ay ve ikinci yarısını ekleyin sonradan ay. Tek uzunlukta aylar için, ilk yarı ekstra mektubu alır. Açık olmak gerekirse, ayların ilk yarıları olan
Janu
,Febr
,Mar
,Apr
,Ma
,Ju
,Ju
,Aug
,Septe
,Octo
,Nove
, veDece
ikinci yarıları bu nedenleary
,uary
,ch
,il
,y
,ne
,ly
,ust
,mber
,ber
,mber
, vember
. - Ortalamayı bir tam sayı olmadığında söz alarak iki olası günü ortalayarak günü hesaplayın.
- Bu tarihin metin temsilini
10/8/2011
çıktı olarak , örneğin çıktı içinAugber 9, 2011
.
- Adına ilk yarısını alarak yeni bir ay adı oluşturun önceki ay ve ikinci yarısını ekleyin sonradan ay. Tek uzunlukta aylar için, ilk yarı ekstra mektubu alır. Açık olmak gerekirse, ayların ilk yarıları olan
Giriş tarihi Ay / Gün / Yıl veya Gün / Ay / Yıl (ör. 13/13/2013
Hatta çift 2/30/2002
) olamazsa, herhangi bir davranış kabul edilebilir. Bu kod golf, en kısa kod kazanır!
Test senaryoları:
10/31/1998
verir October 31, 1998
25/12/1989
verir December 25, 1989
10/8/2011
verir Augber 9, 2011
8/5/1957
verir Maust 6, 1957
9/12/2012
(garip bir şekilde) verir September 10, 2012
1/1/2000
verir January 1, 2000
without leading zeroes and with a four-digit year at the end
imayear >= 1000