Quindi, ora che è il 2015 e un sacco di risposte dal puzzle dell'anno scorso stanno iniziando a produrre risultati non validi , è tempo di una domanda che coinvolga il numero 2015.
Tranne ... perché? Non ti piacerebbe se le tue risposte basate sulla data al problema dell'anno scorso fossero valide? Perché non cambiamo il nostro calendario in modo che non sia mai il 2015 e continuiamo semplicemente a vivere nel 2014, nei secoli dei secoli?
Definiamo una nuova notazione della data, chiamata Notazione Eternal 2014 , come segue:
- Per le date 2014 e precedenti, le date saranno le stesse del proletico calendario gregoriano .
- Per le date degli anni 2015 e successivi, l'anno rimarrà il 2014 e il mese sarà il numero che sarebbe se lo stesso ciclo del mese nel 2014 dovesse continuare per sempre oltre il mese 12. Così
2015-02-08
sarebbe2014-14-08
, e2020-12-31
sarebbe2014-85-02
. Si noti che i giorni bisestili non sono contabilizzati perché il 2014 non è un anno bisestile.
Il tuo compito è costruire un programma o una funzione che prenderà una data astronomica giuliana come input e restituisca una stringa con la data corrispondente a quella data giuliana nella notazione Eternal 2014, in uno YYYY-MM-DD
o in entrambi i DD/MM/YYYY
formati.
Puoi presumere che il giorno giuliano inserito sarà sempre un numero intero dal 1721426
(1 gennaio 1) al 2914695
(23 gennaio 3268) incluso. Gli anni possono contenere zeri iniziali da pad a 4 cifre o meno, ma mesi e giorni devono sempre avere zeri iniziali da pad a due cifre (e gli anni non possono contenere zeri iniziali da pad a un numero qualsiasi di cifre diverse da 4).
Ecco alcuni esempi di input e relativi output, in tutti i formati accettabili:
> 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
Non è possibile utilizzare alcuna libreria di elaborazione delle date integrata nella propria lingua. Tutti i calcoli devono essere eseguiti in modo algoritmico all'interno del codice sorgente del programma stesso.
Vince il programma più breve (in byte) per raggiungere questo obiettivo in qualsiasi lingua.