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.75
significa 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.53
significa 27 August 1953
no 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.12
pode 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
=>12
29.00.02
=>0
(A única possibilidade é29 February 1900 (Julian)
)04.30.00
=>13
06.12.15
=>3291
5, May 1975
suposto ser31st
? Além disso, temos que dar conta de anos bissextos?