以下の形式のいずれか(すべて同じプログラムで処理する必要がある)で記述された日付を指定して、有効なに解析します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を無視した提出が見られます。