Итак, теперь, когда наступил 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
Вы не можете использовать какие-либо встроенные библиотеки обработки данных на вашем языке. Все вычисления должны выполняться алгоритмически в самом исходном коде программы.
Самая короткая программа (в байтах) для достижения этого на любом языке выигрывает.