给定以以下任何格式(必须在同一程序中全部处理)编写的日期,请将其解析为有效的yyyy/mm/dd date
。
17th May 2012
March 14th, 2016
20 February 2014
September 14, 2017
Sunday, June 8, 2015
规则
- 日期有时是无效的,即。如果月份中的日期不正确或一年中的月份数不正确,则必须处理两种情况。您可以选择是否出错或返回一致的false值。(但是,它们将遵循上面的模板格式)
- 必须使用少于10天和几个月的填充来创建两位数的输出。
- 月名称将始终为全名,而不是三个字符的缩写。
- 您可以假设年份始终在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
12
0/10,格式不够充分
—
Martin Ender
“ 这里的cos谁不喜欢挑战 ”-当他们以奖金的形式出现时,我们大多数人都不喜欢!并输入验证码。
—
毛茸茸的
@ Mr.Xcoder我觉得整个挑战是支持多种格式信号输入..之类的东西
—
凯文·克鲁伊森
20 February 2014
都默认了很多日期解析器的支持,但17th
并Sunday, June 8, 2015
是有点困难解析(取决于语言)。
@ Mr.Xcoder我从未说过这是一个有趣/无聊,容易/困难,好/坏的代码高尔夫挑战。我只是说,根据我在挑战中所读内容,支持多种输入格式似乎是挑战的主要目标。我同意这很可能是五个输入格式的if-else,或者是提取年,月和日的某种正则表达式(这是我目前的做法)。
—
凯文·克鲁伊森
星期几总是正确的吗?会
—
本杰明·坎宁安
Thursday, August 25, 2017
有效吗?我看到提交的文章忽略了DOW。