Порядок форматирования дат - одна из самых сложных и противоречивых проблем, с которыми сегодня сталкивается мир. Некоторые из нас неистово утверждают, что Месяц / День / Год - это уместно, учитывая, что, как мы говорим, мы говорим вслух. Другие громко заявляют, что День / Месяц / Год - лучший, потому что это помещает условия в порядке возрастания продолжительности, которую они представляют.
Хватит значит хватит. Компьютеры могут решить этот спор просто и справедливо. Ваш код, полная функция или программа, будет принимать строку даты, разделенную косыми чертами, например 12/1/2015. Обратите внимание, что это точный формат без начальных нулей и четырехзначного года в конце.
- Если это определенно месяц / день / год, например
10/31/1998, выведите текстовое представление этой даты в этом точном формате с полным названием месяца, дня и года:October 31, 1998 - Если это , безусловно , день / месяц / год, например
25/12/1989, выход такого же рода текстовое представление:December 25, 1989. - Если это неоднозначно, будь то месяц / день / год или день / месяц / год, выведите дату, которая разрешает неоднозначность, комбинируя две возможные даты следующим образом:
- Создайте новое имя месяца, взяв первую половину названия предыдущего месяца и добавив вторую половину более позднего месяца. В течение месяцев с нечетной длиной первая половина получает дополнительную букву. Для того, чтобы быть явными, первые половинки месяцев
Janu,Febr,Mar,Apr,Ma,Ju,Ju,Aug,Septe,Octo,Nove, и ,Deceа вторые половинки, следовательноary,uary,ch,il,y,ne,ly,ust,mber,ber,mber, иmber. - Рассчитайте день, усреднив два возможных дня, взяв слово, когда среднее не является целым числом.
- Выведите текстовое представление этой даты, например, для
10/8/2011вывода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
