Dada una fecha escrita en cualquiera (debe manejar todos en el mismo programa) de los siguientes formatos, analícela en una válida yyyy/mm/dd date
.
17th May 2012
March 14th, 2016
20 February 2014
September 14, 2017
Sunday, June 8, 2015
Reglas
- Las fechas a veces serán inválidas, es decir. día incorrecto para el mes o número de meses en un año, debe manejar ambos casos. Ya sea por error o devolviendo un valor de falsey consistente, usted elige. (Sin embargo, se apegarán a los formatos de plantilla anteriores)
- El relleno para días y meses inferiores a 10 debe usarse para crear una salida de dos dígitos.
- Los nombres de los meses siempre serán el nombre completo, no abreviado a sus contrapartes de tres caracteres.
- Puede asumir que el año siempre estará dentro del rango de9999.
- Los números negativos no necesitan ser manejados.
- Puede crear un programa o función completa para que la salida pueda estar en cualquier formato, imprimirse en la consola o devolverse desde una función.
- La entrada siempre será una cadena, la salida siempre debe ser una cadena, si hace que sea más corto tomarlo como un argumento único en una matriz, por ejemplo.
["17th May 2012"]
puede hacerlo y la salida puede ser la misma["2012/05/17"]
- Puede suponer que la ortografía en la entrada será correcta.
BONIFICACIÓN: porque a quién aquí no le gusta un desafío;)
Si puede permitir también los formatos de entrada The Fourteenth of March, 2016
o March the Fourteenth, 2016
puede quitar 20 bytes adicionales de su código con cualquier recuento final de bytes inferior a 1, lo que da como resultado 1.
Aquí están los números escritos completos para cada uno de los días para evitar cualquier confusión en la ortografía.
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
Casos de prueba
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
son soportados por omisión en un montón de fecha-analizadores, pero 17th
y Sunday, June 8, 2015
son un poco más difícil de analizar (en función del idioma).
Thursday, August 25, 2017
valido? Veo presentaciones ignorando el DOW.