Отже, тепер, коли настає 2015 рік, і купа відповідей з минулорічної головоломки починає давати недійсні результати , настав час для запитання про число 2015.
За винятком ... чому? Вам не сподобається, якби ваші відповіді на дату на минулорічну проблему залишалися дійсними? Чому б нам не змінити наш календар, щоб він не був ніколи 2015, а ми просто продовжували жити в 2014 році, навіки і назавжди?
Давайте визначимо нове позначення дати, яке називається Вічною нотацією 2014 року , наступним чином:
- Для дат 2014 та раніше дати будуть такими ж, як у пролептичному григоріанському календарі .
- Для дат у 2015 році і далі рік залишатиметься 2014, а місяць буде таким, як це було б, якби той самий місячний цикл у 2014 році тривав би назавжди минулого місяця 12. Так
2015-02-08
би2014-14-08
і2020-12-31
було2014-85-02
. Зауважте, що високосні дні не враховуються, оскільки 2014 рік не є високосним.
Ваше завдання полягає в тому, щоб скласти програму або функцію, яка буде приймати Джуліанську астрономічну дату як вхідну інформацію та повертати рядок із датою, що відповідає цій даті Джуліана у Віковій нотації 2014 року, у будь-якому форматі YYYY-MM-DD
чи DD/MM/YYYY
форматі.
Ви можете припустити, що введений Джуліанський день завжди буде цілим числом від 1721426
(1, 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
Ви не можете використовувати будь-які вбудовані бібліотеки обробки дати вашою мовою. Всі обчислення повинні проводитися алгоритмічно в межах самого вихідного коду програми.
Виграє найкоротша програма (у байтах) для досягнення будь-якої мови.