それで、2015年になり、 昨年のパズルから の回答の多くが 無効な出力を生成し始めたので、今度は2015年の数字を含む質問の時です。
を除いて...なぜ?昨年の問題に対する日付に基づいた回答が有効なままであったら、それは気に入らないでしょうか?2015年にならないようにカレンダーを変更して、2014年にいつまでも永遠に住み続けますか?
Eternal 2014 notationと呼ばれる新しい日付表記を次のように定義しましょう。
- 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月1日、1)から2914695
(1月23日、3268)までの整数であると仮定できます。年には、4桁にパディングする先行ゼロが含まれるかどうかが含まれますが、月と日には常に2桁にパディングする先行ゼロが含まれている必要があります(また、年には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
ご使用の言語で組み込みの日付処理ライブラリを使用することはできません。すべての計算は、プログラムのソースコード内でアルゴリズム的に実行する必要があります。
任意の言語でこれを達成する最短のプログラム(バイト単位)が勝ちます。