Die Formatierungsreihenfolge von Datumsangaben ist eines der komplexesten und umstrittensten Probleme, mit denen die Welt heute konfrontiert ist. Einige von uns argumentieren vehement, dass Monat / Tag / Jahr angemessen ist, wenn man bedenkt, wie wir sagen, dass Daten laut sind. Andere proklamieren lautstark, dass Tag / Monat / Jahr am besten ist, da die Begriffe in aufsteigender Reihenfolge der Dauer aufgeführt werden, die sie darstellen.
Genug ist genug. Computer können diesen Streit einfach und fair lösen. Ihr Code, eine vollständige Funktion oder ein Programm, enthält eine durch Schrägstriche begrenzte Datumszeichenfolge, z 12/1/2015. Beachten Sie, dass dies das genaue Format ist, ohne führende Nullen und mit einem vierstelligen Jahr am Ende.
- Wenn es sich definitiv um Monat / Tag / Jahr handelt, geben Sie beispielsweise
10/31/1998eine Textdarstellung dieses Datums in genau diesem Format mit dem vollständigen Monatsnamen, Tag und Jahr aus:October 31, 1998 - Wenn es definitiv Tag / Monat / Jahr, zum Beispiel
25/12/1989, Ausgabe der gleiche Art von Textdarstellung:December 25, 1989. - Wenn es nicht eindeutig ist, ob es sich um Monat / Tag / Jahr oder Tag / Monat / Jahr handelt, geben Sie ein Datum aus, mit dem die Mehrdeutigkeit behoben wird, indem Sie die beiden möglichen Daten wie folgt kombinieren:
- Erstellen Sie einen neuen Monatsnamen, indem Sie die erste Hälfte des Namens des vorherigen Monats übernehmen und die zweite Hälfte des späteren Monats anhängen . Für Monate mit ungerader Länge erhält die erste Hälfte den zusätzlichen Buchstaben. Um explizit, sind die ersten Hälften der Monate
Janu,Febr,Mar,Apr,Ma,Ju,Ju,Aug,Septe,Octo,Nove, undDeceund die zweiten Hälften sind daherary,uary,ch,il,y,ne,ly,ust,mber,ber,mber, undmber. - Berechnen Sie den Tag, indem Sie den Durchschnitt der zwei möglichen Tage bilden und dabei das Wort ergreifen, wenn der Durchschnitt keine ganze Zahl ist.
- Die Textdarstellung dieses Datums
10/8/2011ausgeben , zB für AusgabeAugber 9, 2011.
- Erstellen Sie einen neuen Monatsnamen, indem Sie die erste Hälfte des Namens des vorherigen Monats übernehmen und die zweite Hälfte des späteren Monats anhängen . Für Monate mit ungerader Länge erhält die erste Hälfte den zusätzlichen Buchstaben. Um explizit, sind die ersten Hälften der Monate
Wenn das Eingabedatum nicht Monat / Tag / Jahr oder Tag / Monat / Jahr sein kann (z. B. 13/13/2013oder sogar 2/30/2002), ist jedes Verhalten akzeptabel. Dieser Code Golf, der kürzeste Code gewinnt!
Testfälle:
10/31/1998 gibt October 31, 1998
25/12/1989 gibt December 25, 1989
10/8/2011 gibt Augber 9, 2011
8/5/1957 gibt Maust 6, 1957
9/12/2012 (seltsamerweise) gibt September 10, 2012
1/1/2000 gibt January 1, 2000
without leading zeroes and with a four-digit year at the endimpliziertyear >= 1000
