Sul mio sito Web, gli utenti inseriscono la loro data di nascita nello stile xx.xx.xx: tre numeri a due cifre separati da punti. Sfortunatamente, ho dimenticato di dire agli utenti esattamente quale formato utilizzare. Tutto quello che so è che una sezione viene utilizzata per il mese, una per la data e una per l'anno. L'anno è sicuramente nel 20 ° secolo (1900-1999), quindi il formato 31.05.75significa 31 May 1975. Inoltre, presumo che tutti usino il calendario gregoriano o giuliano.
Ora, voglio passare attraverso il mio database per cancellare il pasticcio. Vorrei iniziare trattando con gli utenti le date più ambigue, ovvero quelle in cui l'intervallo di date possibili è il più grande.
Ad esempio, la data 08.27.53indica 27 August 1953nel calendario gregoriano o giuliano. La data nel calendario giuliano è 13 giorni dopo, quindi l'intervallo è giusto 13 days.
Al contrario, la notazione 01.05.12può riferirsi a molte date possibili. Il primo è 12 May 1901 (Gregorian)e l'ultimo è 1 May 1912 (Julian). La gamma è 4020 days.
Regole
- L'input è una stringa nel formato
xx.xx.xx, in cui ogni campo è composto da due cifre e con zero. - L'output è il numero di giorni nell'intervallo.
- Si può presumere che l'input sarà sempre una data valida.
- Non è possibile utilizzare alcuna data incorporata o funzioni del calendario.
- Il codice più breve (in byte) vince.
Casi test
01.00.31=>1229.00.02=>0(L'unica possibilità è29 February 1900 (Julian))04.30.00=>1306.12.15=>3291
5, May 1975supposto per essere31st? Inoltre, dobbiamo tenere conto degli anni bisestili?