Итак, теперь, когда наступил 2015 год, и куча ответов из прошлогодней головоломки начали давать неверные результаты , пришло время для вопроса, касающегося числа 2015.
Кроме ... почему? Разве вам не хотелось бы, чтобы ваши основанные на дате ответы на прошлогоднюю проблему оставались в силе? Почему бы нам не изменить наш календарь, чтобы он никогда не был 2015 годом, и мы просто продолжаем жить в 2014 году, во веки веков?
Давайте определим новую запись даты, которая называется « Вечная запись 2014» , следующим образом:
- Для дат 2014 года и ранее даты будут такими же, как в лепетическом григорианском календаре .
- Для дат 2015 года и далее год будет оставаться 2014, и месяц будет таким же, каким он был бы, если бы цикл одного и того же месяца в 2014 году продолжался вечно после 12 месяца. Так
2015-02-08
будет2014-14-08
и2020-12-31
будет2014-85-02
. Обратите внимание, что високосные дни не учитываются, потому что 2014 год не високосный.
Ваша задача - создать программу или функцию, которая будет принимать юлианскую астрономическую дату в качестве входных данных и возвращать строку с датой, соответствующей этой юлианской дате в записи Eternal 2014, в любом из этих форматов YYYY-MM-DD
или в DD/MM/YYYY
формате.
Можно предположить, что введенный юлианский день всегда будет целым числом от 1721426
(1 января) до 2914695
(23 января 3268 года) включительно. Годы могут содержать начальные нули для дополнения до 4 цифр или нет, но месяцы и дни должны всегда иметь ведущие нули для дополнения до двух цифр (а годы могут не содержать начальные нули для дополнения до любого числа цифр, кроме 4).
Вот несколько примеров входных и выходных данных во всех допустимых форматах:
> 1721426
1-01-01
01/01/1
0001-01-01
01/01/0001
> 2086302
999-12-31
31/12/999
0999-12-31
31/12/0999
> 2456659
2014-01-01
01/01/2014
> 2456789
2014-05-11
11/05/2014
> 2457024
2014-13-01
01/13/2014
> 2457389
2014-25-01
01/25/2014
> 2469134
2014-411-07
07/411/2014
> 2567890
2014-3657-29
29/3657/2014
> 2914695
2014-15059-23
23/15059/2014
Вы не можете использовать какие-либо встроенные библиотеки обработки данных на вашем языке. Все вычисления должны выполняться алгоритмически в самом исходном коде программы.
Самая короткая программа (в байтах) для достижения этого на любом языке выигрывает.