日付のフォーマット順序は、今日世界が直面している最も複雑で分裂的な問題の1つです。私たちの一部は、月/日/年が適切であると激しく主張します。他の人は、日/月/年が最高であると大声で宣言しています。
いい加減にしろ。コンピューターはこの論争を簡単かつ公正に解決できます。完全な関数またはプログラムであるコードは、スラッシュなどで区切られた日付文字列を取ります12/1/2015。これは正確な形式であり、先頭にゼロを付けず、末尾に4桁の年を付けます。
- それはなら間違いなく月/日/年、例えば
10/31/1998、出力完全な月名、日、年で、この正確な形式でその日付のテキスト表現:October 31, 1998 - それはなら間違いなく日/月/年、例えば
25/12/1989、出力テキスト表現の同じ種類:December 25, 1989。 - 月/日/年か日/月/年かがあいまいな場合は、次のように2つの可能な日付を組み合わせてあいまいさを解決する日付を出力します。
- 名前の最初の半分取ることによって、新しい月の名前を作成して、以前の月をし、後半追加後の月を。長さが奇数の月の場合、前半には余分な文字が付きます。明示的には、数ヶ月の最初の半分であり
Janu、Febr、Mar、Apr、Ma、Ju、Ju、Aug、Septe、Octo、Nove、およびDece第二半部は、したがってありary、uary、ch、il、y、ne、ly、ust、mber、ber、mber、およびmber。 - 2つの可能な日を平均して日を計算し、平均が整数でない場合に床を取ります。
- for
10/8/2011、outputなど、この日付のテキスト表現を出力しますAugber 9, 2011。
- 名前の最初の半分取ることによって、新しい月の名前を作成して、以前の月をし、後半追加後の月を。長さが奇数の月の場合、前半には余分な文字が付きます。明示的には、数ヶ月の最初の半分であり
入力日付が月/日/年または日/月/年(13/13/2013または2/30/2002)にできない場合、任意の動作が許容されます。このコードはゴルフ、最短コードが勝ちます!
テストケース:
10/31/1998 与える October 31, 1998
25/12/1989 与える December 25, 1989
10/8/2011 与える Augber 9, 2011
8/5/1957 与える Maust 6, 1957
9/12/2012 (奇妙なことに) September 10, 2012
1/1/2000 与える January 1, 2000
without leading zeroes and with a four-digit year at the end意味year >= 1000
