入力:
日付(dd
、MM
およびを含むyyyy
)。日付オブジェクト、または3つの個別の整数も入力として有効です。
出力:
各部分(dd
、MM
およびyyyy
)は個別に元に戻され、次に最も近い有効な日付に丸められます。
例(形式dd-MM-yyyy
):に
21-10-2016
なります12-01-6102
チャレンジルール:
- のみ
dd
、MM
、yyyy
有効ですが、あなたが使用順序と別のシンボルは、あなた自身の選択です。
したがって、これらは有効な形式の例ですdd-MM-yyyy
。MM/dd/yyyy
;yyyy MM dd
;ddMMyyyy
など。
また、これらは無効な形式の例ですdd MMM yyyy
。dd-MM-'yy
; 等 - 日付を表す文字列の代わりに、言語がサポートしている場合はDateオブジェクトを入力するか、3つの個別の整数パラメーターを入力することもできます。
- 使用した日付形式を明記してください!(また、入力と出力は同じ形式でなければなりません。)以下のすべてのテストケースとチャレンジルールを処理できる限り、Dateオブジェクトの出力も許可されます。
- このチャレンジでは、ユリウス暦からグレゴリオ暦への移行は無視されます。の
1582
有効な逆年です2851
。
有効なすべての年、月、日に関するチャレンジ情報/ヒントを参照してください。 - 2月を他の月と逆にすることはできないため、うるう年を心配する必要はありません。
すべて逆の年、月、日:
- 年は、問題なくいつでも元に戻すことができ、0001(元に戻す
1000
)から9999(残り9999
)に達します。(つまり0000
、有効な入力ではなく、テストケースもありません。) - 取り消されるのは、1月のみです:1月(10月から取り消され
10
ます/ )10月(1月から反転/01
); 11月(11月のまま/11
); および12月(1か月おきに反転/02
-09
、12
)。 - 取り消されるのは、01(から取り消される
10
)、02(から取り消される20
)、03(から取り消される30
)、10(から取り消される01
)、11(残っている11
)、12(から取り消される21
)、13(から取り消される31
)のみです、20(から反転02
)、21(から反転12
)、22(のまま22
)、30(11月から反転03
または31と同じ!)、31(から反転04
-09
/13
-19
/23
-29
)。
一般的なルール:
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 - 回答には標準的な規則が適用されるため、STDIN / STDOUT、適切なパラメーターを持つ関数/メソッド、リターンステートメント/出力、完全なプログラムを使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテストへのリンクを追加してください。
- また、必要に応じて説明を追加してください。
テストケース(dd-MM-yyyy
形式として):
21-07-2016 -> 12-12-6102
12-11-1991 -> 21-11-1991
01-01-2000 -> 10-10-0002
27-08-1875 -> 31-12-5781
18-12-2010 -> 31-12-0102
13-01-1981 -> 31-10-1891
04-11-1671 -> 30-11-1761 // Semi-tricky case, since November has 30 days
28-11-2036 -> 30-11-6302 // Semi-tricky case, since November has 30 days
14-06-1855 -> 31-12-5581
30-10-9999 -> 03-01-9999
01-01-2851 -> 10-10-1582
70
一周し、年が増加していると思った。
10-10-2
第三のケースで有効な出力は?
21-07-2016
元に戻さ12-70-6102
れ、丸められ12-12-6102
ます。わからないあなたが結果を得る方法を##-10-6107
...