Teraz, kiedy jest rok 2015, a garść odpowiedzi z zeszłorocznej układanki zaczyna przynosić nieprawidłowe wyniki , czas na pytanie dotyczące liczby 2015.
Z wyjątkiem ... dlaczego? Czy nie spodobałoby Ci się, gdyby twoje oparte na dacie odpowiedzi na problem z zeszłego roku pozostały aktualne? Dlaczego nie zmienimy naszego kalendarza, aby nigdy nie był 2015, i po prostu nadal będziemy żyć w 2014 roku, na zawsze i na zawsze?
Zdefiniujmy nowy zapis daty, zwany zapisem Eternal 2014 , w następujący sposób:
- W przypadku dat 2014 i wcześniejszych daty będą takie same, jak w proleptycznym kalendarzu gregoriańskim .
- W przypadku dat w latach 2015 i później rok pozostanie 2014, a miesiąc będzie liczbą, która byłaby, gdyby ten sam cykl miesiąca w 2014 r. Trwałby wiecznie po 12. miesiącu. Tak też
2015-02-08
będzie2014-14-08
i2020-12-31
będzie2014-85-02
. Należy pamiętać, że dni przestępne nie są uwzględniane, ponieważ rok 2014 nie jest rokiem przestępnym.
Twoim zadaniem jest zbudowanie programu lub funkcji, która przyjmie astronomiczną datę juliańską jako dane wejściowe i zwróci ciąg znaków z datą odpowiadającą dacie juliańskiej w zapisie Eternal 2014, w jednym YYYY-MM-DD
lub w dowolnym DD/MM/YYYY
formacie.
Możesz założyć, że wprowadzony dzień juliański będzie zawsze liczbą całkowitą od 1721426
(1 stycznia 1) do 2914695
(23 stycznia 3268) włącznie. Lata mogą zawierać wiodące zera do uzupełnienia do 4 cyfr lub nie, ale miesiące i dni muszą zawsze mieć zera wiodące do uzupełnienia do dwóch cyfr (a lata mogą nie zawierać zer wiodących do uzupełnienia do dowolnej liczby cyfr innej niż 4).
Oto kilka przykładowych danych wejściowych i ich danych wyjściowych we wszystkich dopuszczalnych formatach:
> 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
Nie możesz używać żadnych wbudowanych bibliotek przetwarzania danych w swoim języku. Wszystkie obliczenia muszą być wykonywane algorytmicznie w samym kodzie źródłowym programu.
Wygrywa najkrótszy program (w bajtach) do osiągnięcia tego w dowolnym języku.