以下の形式のいずれか(すべて同じプログラムで処理する必要がある)で記述された日付を指定して、有効なに解析しますyyyy/mm/dd date。
17th May 2012
March 14th, 2016
20 February 2014
September 14, 2017
Sunday, June 8, 2015
ルール
- 日付が無効になる場合があります。月または年の月数が正しくない場合は、両方のケースを処理する必要があります。エラーになるか、一貫した偽の値を返すかのどちらかを選択します。(ただし、上記のテンプレート形式を使用します)
- 2桁の出力を作成するには、10未満の日と月のパディングを使用する必要があります。
- 月の名前は常にフルネームであり、3文字の短縮形に短縮されません。
- 年は常に0000〜9999の範囲内であると想定できます。
- 負の数は処理する必要はありません。
- 完全なプログラムまたは関数を作成して、出力を任意の形式にして、コンソールに出力したり、関数から返すことができます。
- 入力が常に文字列であり、出力が常に文字列である必要がある場合は、配列内の単一の引数として受け取ると短くなります。
["17th May 2012"]あなたはそうすることができ、出力は同じになる可能性があります["2012/05/17"] - 入力のスペルが正しいと想定できます。
ボーナス:ここでチャレンジが嫌いなcos;)
あなたはまたの入力フォーマットを許可するように管理することができた場合The Fourteenth of March, 2016、またはMarch the Fourteenth, 2016あなたが余分かかる場合があります20バイトの少ない1その結果1よりも最終的なバイト数でコードオフ。
スペルの混乱を避けるために、各曜日の完全な筆記番号を以下に示します。
First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Nineth, Tenth, Eleventh, Twelfth, Thirteenth, Fourteenth, Fifteenth, Sixteenth, Seventeenth, Eighteenth, Nineteenth, Twentieth, Twenty First, Twenty Second, Twenty Third, Twenty Fourth, Twenty Fifth, Twenty Sixth, Twenty Seventh, Twenty Eighth, Twenty Nineth, Thirtieth, Thirty First
テストケース
INPUT | Output
17th May 2012 | 2012/05/17
March 14th, 2016 | 2016/03/14
20 February 2014 | 2014/02/20
September 14, 2017 | 2017/09/14
Sunday, June 8, 2015 | 2015/06/08
1st January 1918 | 1918/01/01
The Fourteenth of March, 2016 | 2016/03/14
March the Fourteenth, 2016 | 2016/03/14
November the Seventeenth, 2019 | 2019/11/17
The Thirtieth of April, 2016 | 2016/04/30
30 February 2014 | Invalid
September 99, 2017 | Invalid
Sunday, June8, 2015 | Invalid
The Thirty First of April, 2016 | Invalid
20 February 2014デフォルトの日付パーサの多くでサポートされますが、17thとSunday, June 8, 2015少し難しく(言語に依存)を解析することです。
Thursday, August 25, 2017有効では?DOWを無視した提出が見られます。
