En mi sitio web, los usuarios ingresan su fecha de nacimiento en el estilo xx.xx.xx
: tres números de dos dígitos separados por puntos. Desafortunadamente, olvidé decirles a los usuarios exactamente qué formato usar. Todo lo que sé es que una sección se usa para el mes, otra para la fecha y otra para el año. El año definitivamente es en el siglo 20 (1900-1999), por lo que el formato 31.05.75
significa 31 May 1975
. Además, supongo que todos usan el calendario gregoriano o juliano.
Ahora, quiero revisar mi base de datos para aclarar el desorden. Me gustaría comenzar tratando con los usuarios con las fechas más ambiguas, es decir, aquellas donde el rango de fechas posibles es el mayor.
Por ejemplo, la fecha 08.27.53
significa 27 August 1953
en el calendario gregoriano o juliano. La fecha en el calendario juliano es 13 días después, por lo que el rango es justo 13 days
.
En contraste, la notación 01.05.12
puede referirse a muchas fechas posibles. Lo primero es 12 May 1901 (Gregorian)
, y lo último es 1 May 1912 (Julian)
. El rango es 4020 days
.
Reglas
- La entrada es una cadena en el formato
xx.xx.xx
, donde cada campo tiene dos dígitos y está rellenado con ceros. - La salida es el número de días en el rango.
- Puede suponer que la entrada siempre será una fecha válida.
- No puede usar ninguna fecha incorporada o funciones de calendario.
- El código más corto (en bytes) gana.
Casos de prueba
01.00.31
=>12
29.00.02
=>0
(La única posibilidad es29 February 1900 (Julian)
)04.30.00
=>13
06.12.15
=>3291
5, May 1975
supone que debe ser31st
? Además, ¿tenemos que tener en cuenta los años bisiestos?