No meu site, os usuários inserem sua data de nascimento no estilo xx.xx.xx- três números de dois dígitos separados por pontos. Infelizmente, esqueci de dizer aos usuários exatamente qual formato usar. Tudo o que sei é que uma seção é usada para o mês, uma para a data e outra para o ano. O ano é definitivamente no século 20 (1900-1999), então o formato 31.05.75significa 31 May 1975. Além disso, suponho que todos usem o calendário gregoriano ou juliano.
Agora, quero examinar meu banco de dados para esclarecer a bagunça. Gostaria de começar lidando com os usuários com as datas mais ambíguas, ou seja, aquelas em que o intervalo de datas possíveis é maior.
Por exemplo, a data 08.27.53significa 27 August 1953no calendário gregoriano ou juliano. A data no calendário juliano é 13 dias depois, portanto o intervalo é justo 13 days.
Por outro lado, a notação 01.05.12pode se referir a muitas datas possíveis. O mais antigo é 12 May 1901 (Gregorian)e o mais recente é 1 May 1912 (Julian). O intervalo é 4020 days.
Regras
- Entrada é uma sequência no formato
xx.xx.xx, em que cada campo tem dois dígitos e preenchimento com zero. - Saída é o número de dias no intervalo.
- Você pode assumir que a entrada sempre será uma data válida.
- Você não pode usar nenhuma função interna de data ou calendário.
- O código mais curto (em bytes) vence.
Casos de teste
01.00.31=>1229.00.02=>0(A única possibilidade é29 February 1900 (Julian))04.30.00=>1306.12.15=>3291
5, May 1975suposto ser31st? Além disso, temos que dar conta de anos bissextos?