Порядок форматирования дат - одна из самых сложных и противоречивых проблем, с которыми сегодня сталкивается мир. Некоторые из нас неистово утверждают, что Месяц / День / Год - это уместно, учитывая, что, как мы говорим, мы говорим вслух. Другие громко заявляют, что День / Месяц / Год - лучший, потому что это помещает условия в порядке возрастания продолжительности, которую они представляют.
Хватит значит хватит. Компьютеры могут решить этот спор просто и справедливо. Ваш код, полная функция или программа, будет принимать строку даты, разделенную косыми чертами, например 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