Na mojej stronie użytkownicy wpisują datę urodzenia zgodnie ze stylem xx.xx.xx- trzy dwucyfrowe liczby oddzielone kropkami. Niestety zapomniałem powiedzieć użytkownikom, jakiego formatu użyć. Wiem tylko, że jedna sekcja jest używana dla miesiąca, jedna dla daty, a druga dla roku. Rok jest zdecydowanie w XX wieku (1900-1999), więc format 31.05.75oznacza 31 May 1975. Zakładam też, że wszyscy używają kalendarza gregoriańskiego lub kalendarza juliańskiego.
Teraz chcę przejrzeć moją bazę danych, aby usunąć bałagan. Chciałbym zacząć od kontaktu z użytkownikami z najbardziej niejednoznacznymi datami, czyli tymi, w których zakres możliwych dat jest największy.
Na przykład data 08.27.53oznacza 27 August 1953w kalendarzu gregoriańskim lub juliańskim. Data w kalendarzu juliańskim to 13 dni później, więc zakres jest sprawiedliwy 13 days.
Natomiast notacja 01.05.12może odnosić się do wielu możliwych dat. Najwcześniejsza jest 12 May 1901 (Gregorian), a najnowsza jest 1 May 1912 (Julian). Zakres wynosi 4020 days.
Zasady
- Dane wejściowe to ciąg znaków w formacie
xx.xx.xx, w którym każde pole składa się z dwóch cyfr i jest uzupełnione zerami. - Dane wyjściowe to liczba dni w zakresie.
- Możesz założyć, że dane wejściowe zawsze będą prawidłową datą.
- Nie możesz używać żadnych wbudowanych funkcji daty ani kalendarza.
- Najkrótszy kod (w bajtach) wygrywa.
Przypadki testowe
01.00.31=>1229.00.02=>0(Jedyną możliwością jest29 February 1900 (Julian))04.30.00=>1306.12.15=>3291
5, May 1975powinno być31st? Czy też musimy brać pod uwagę lata przestępne?