Учитывая дату, записанную в любом (должен обрабатывать все в одной и той же программе) из следующих форматов, проанализируйте ее в действительном yyyy/mm/dd date
.
17th May 2012
March 14th, 2016
20 February 2014
September 14, 2017
Sunday, June 8, 2015
правила
- Даты иногда будут недействительными, т.е. неправильный день для месяца или количество месяцев в году, вы должны обработать оба случая. Выбираете ли вы ошибку или возвращаете постоянное значение Falsey. (Однако они будут придерживаться шаблонов форматов выше)
- Заполнение для дней и месяцев менее 10 должно использоваться для создания двузначного вывода.
- Названия месяцев всегда будут полными, а не сокращенными до трехзначных.
- Вы можете предположить, что год всегда будет в диапазоне 0000-9999.
- Отрицательные числа не должны быть обработаны.
- Вы можете создать полную программу или функцию, чтобы вывод мог быть в любом формате, распечатан на консоль или возвращен из функции.
- Ввод всегда будет строкой, выход всегда должен быть строкой, если это делает его короче, чтобы он воспринимался как один аргумент в массиве, например.
["17th May 2012"]
Вы можете сделать это, и результат может быть таким же["2012/05/17"]
- Вы можете предположить, что правописание при вводе будет правильным.
БОНУС: потому что, кто здесь не любит вызов;)
Если вам удастся также разрешить входные форматы 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.