Escriba una función o programa que acepte una fecha (como una cadena en YYYY-MM-DDformato) como entrada y devuelva un valor verdadero si esa fecha es "alfabética" y un valor falsey si no lo es.
Una fecha alfabética es una fecha cuyo mes, día y año están en orden alfabético cuando se expresa como una cadena (y cuando se considera específicamente en orden M - D - Y). Por ejemplo, el 26 de septiembre de 2018 es una fecha alfabética:
September 26th 2018 -> September twenty-sixth two thousand eighteen
September
Twenty-sixth
Two thousand eighteen
Otra forma de pensar en este desafío: "¿los elementos de una fecha dada están ordenados léxicamente?"
Notas:
- 2018 se representa como "dos mil dieciocho", no "veinte dieciocho" o "dos cero uno ocho". Para otro ejemplo, el año 1456 se representaría como "mil cuatrocientos cincuenta y seis", no "catorce cincuenta y seis".
- 26 se representa como "vigésimo sexto", no "veintiséis".
- Cada elemento de la fecha se considera como un todo. Es por eso que 2018 no falla automáticamente a pesar de que la "e" en dieciocho viene antes que la "t" en dos.
Las siguientes fechas no son alfabéticas:
- 2 de septiembre de 2018 ("segundo" debe clasificarse antes de "septiembre")
- 30 de abril de 4000 ("cuatro mil" deberían clasificarse antes del "trigésimo")
Reglas Adicionales:
- Recibirá la fecha como una cadena, formateada como
YYYY-MM-DD. El año siempre tendrá cuatro dígitos, y el mes y el día siempre tendrán dos dígitos cada uno. El relleno cero no se representa en la conversión de cadena (por ejemplo, '2000-01-01' es 'Primero dos mil de enero' como era de esperar). - Puede suponer que las fechas siempre serán válidas (no el 30 de febrero, no el 1 de marzo) y que el valor del año será positivo (sin fechas BC), pero la fecha puede estar muy lejos en el futuro ("en el año
dosnueve mil..."). - Debe devolver un valor verdadero o falso, no necesariamente un valor booleano
TrueoFalse. Si hace esto en Javascript y desea regresar'0'y0eso está bien. Por supuesto, si desea devolver un valor booleano, siéntase libre. - Las lagunas estándar están prohibidas.
- Esto es
code-golf
Más ejemplos de fechas alfabéticas
- 2066-01-02 (2 de enero de dos mil sesenta y seis)
- 1000-04-08 (ocho de abril de mil)
- 6000-08-01 (primero de agosto, seis mil)
Más ejemplos de fechas no alfabéticas
- 1066-01-02 (2 de enero de mil sesenta y seis)
- 1000-04-07 (7 de abril de mil)
- 8000-08-01 (primero de agosto, ocho mil)