На моем сайте пользователи вводят дату своего рождения в стиле xx.xx.xx
- три двузначных числа, разделенных точками. К сожалению, я забыл сказать пользователям, какой именно формат использовать. Все, что я знаю, это то, что один раздел используется для месяца, один для даты и один для года. Год определенно наступил в 20 веке (1900-1999), так что формат 31.05.75
означает 31 May 1975
. Кроме того, я предполагаю, что все используют либо григорианский, либо юлианский календарь.
Теперь я хочу просмотреть свою базу данных, чтобы навести порядок. Я хотел бы начать с работы с пользователями с самыми неоднозначными датами, то есть с теми, где диапазон возможных дат является самым большим.
Например, дата 08.27.53
означает 27 August 1953
в григорианском или юлианском календаре. Дата в юлианском календаре - 13 дней спустя, поэтому диапазон просто 13 days
.
Напротив, запись 01.05.12
может относиться ко многим возможным датам. Самое раннее 12 May 1901 (Gregorian)
, а самое последнее 1 May 1912 (Julian)
. Диапазон есть 4020 days
.
правила
- Ввод - это строка в формате
xx.xx.xx
, где каждое поле состоит из двух цифр и дополняется нулями. - Выход - количество дней в диапазоне.
- Вы можете предположить, что ввод всегда будет действительной датой.
- Вы не можете использовать какие-либо встроенные функции даты или календаря.
- Самый короткий код (в байтах) выигрывает.
Testcases
01.00.31
=>12
29.00.02
=>0
(Единственная возможность29 February 1900 (Julian)
)04.30.00
=>13
06.12.15
=>3291
5, May 1975
должно быть31st
? Кроме того, мы должны учитывать високосные годы?