El orden de formato de las fechas es uno de los problemas más complejos y divisivos que el mundo enfrenta hoy. Algunos de nosotros argumentamos con vehemencia que Mes / Día / Año es apropiado, considerando que así es como decimos las fechas en voz alta. Otros proclaman en voz alta que Día / Mes / Año es mejor, porque pone los términos en orden ascendente de la duración que representan.
Suficiente es suficiente. Las computadoras pueden resolver esta disputa de manera simple y justa. Su código, una función o programa completo, tomará una cadena de fecha delimitada por barras, por ejemplo 12/1/2015
. Tenga en cuenta que este es el formato exacto, sin ceros a la izquierda y con un año de cuatro dígitos al final.
- Si definitivamente es Mes / Día / Año, por ejemplo
10/31/1998
, envíe una representación de texto de esa fecha en este formato exacto, con el nombre completo del mes, día y año:October 31, 1998
- Si es sin duda el día / mes / año, por ejemplo
25/12/1989
, la salida de la misma clase de representación de texto:December 25, 1989
. - Si es ambiguo ya sea Mes / Día / Año o Día / Mes / Año, genere una fecha que resuelva la ambigüedad combinando las dos fechas posibles de la siguiente manera:
- Cree un nuevo nombre de mes tomando la primera mitad del nombre del mes anterior y agregue la segunda mitad del mes posterior . Para meses con longitud impar, la primera mitad recibe la carta extra. Para ser explícitos, las primeras mitades de los meses son
Janu
,Febr
,Mar
,Apr
,Ma
,Ju
,Ju
,Aug
,Septe
,Octo
,Nove
, yDece
y las segundas mitades son, por lo tantoary
,uary
,ch
,il
,y
,ne
,ly
,ust
,mber
,ber
,mber
, ymber
. - Calcule el día promediando los dos días posibles, tomando el piso cuando el promedio no es un número entero.
- Salida de la representación de texto de esta fecha, por ejemplo
10/8/2011
, para salidaAugber 9, 2011
.
- Cree un nuevo nombre de mes tomando la primera mitad del nombre del mes anterior y agregue la segunda mitad del mes posterior . Para meses con longitud impar, la primera mitad recibe la carta extra. Para ser explícitos, las primeras mitades de los meses son
Si la fecha de entrada no puede ser Mes / Día / Año o Día / Mes / Año (por ejemplo, 13/13/2013
o incluso 2/30/2002
), cualquier comportamiento es aceptable. Este código de golf, el código más corto gana!
Casos de prueba:
10/31/1998
da October 31, 1998
25/12/1989
da December 25, 1989
10/8/2011
da Augber 9, 2011
8/5/1957
da Maust 6, 1957
9/12/2012
(curiosamente) da September 10, 2012
1/1/2000
da January 1, 2000
without leading zeroes and with a four-digit year at the end
implicayear >= 1000