Eingang:
Ein Date (enthält dd
, MM
und yyyy
). Ein Datumsobjekt oder drei separate Ganzzahlen sind ebenfalls als Eingabe gültig.
Ausgabe:
Jedes Teil ( dd
, MM
und yyyy
) wird einzeln zurückgesetzt und auf das nächste gültige Datum gerundet.
Zum Beispiel (im Format dd-MM-yyyy
):
21-10-2016
wird12-01-6102
Herausforderungsregeln:
- Nur
dd
,MM
,yyyy
gültig ist , aber die Reihenfolge und die getrennten-Symbole , die Sie verwenden , ist Ihre eigene Wahl.
Das sind also einige gültige Format Beispiele:dd-MM-yyyy
;MM/dd/yyyy
;yyyy MM dd
;ddMMyyyy
Etc.
Und das sind einige ungültige Format Beispiele:dd MMM yyyy
;dd-MM-'yy
; etc. - Sie können auch nur ein Datumsobjekt eingeben, wenn Ihre Sprache dies unterstützt, oder drei separate Ganzzahlparameter anstelle der Zeichenfolge, die ein Datum darstellt.
- Bitte geben Sie an, welches Datumsformat Sie verwendet haben! (Und die Eingabe und Ausgabe müssen im selben Format sein.) Es ist auch erlaubt, ein Date-Objekt auszugeben, solange es alle Testfälle und die unten stehende Herausforderungsregel verarbeiten kann.
- Der Übergang vom Julianischen zum Gregorianischen Kalender wird für diese Herausforderung ignoriert. Ist
1582
also nur ein gültiges umgekehrtes Jahr für2851
.
Siehe Challenge-Info / Tipps für alle gültigen Jahre, Monate und Tage. - Da der Februar von keinem anderen Monat umgekehrt werden kann, müssen Sie sich keine Gedanken über Schaltjahre machen.
Alle umgekehrten Jahre, Monate und Tage:
- Das Jahr kann jederzeit problemlos umgekehrt werden und reicht von 0001 (umgekehrt von
1000
) bis 9999 (verbleibend9999
). (Also0000
keine gültige Eingabe, und es gibt auch keine Testfälle dafür.) - Die einzigen Monate, die Sie umgekehrt haben, sind: Januar (umgekehrt von Oktober /
10
); Oktober (umgekehrt ab Januar /01
); November (bleibt November /11
); und Dezember (umgekehrt zu jedem zweiten Monat /02
-09
,12
). - Die einzigen Tage, die Sie rückgängig gemacht haben, sind: 01 (rückgängig gemacht von
10
), 02 (rückgängig gemacht von20
), 03 (rückgängig gemacht von30
), 10 (rückgängig gemacht von01
), 11 (übrig geblieben11
), 12 (rückgängig gemacht von21
), 13 (rückgängig gemacht von31
) , 20 (rückgängig gemacht von02
), 21 (rückgängig gemacht von12
), 22 (übrig geblieben22
), 30 (rückgängig gemacht von03
oder dasselbe wie 31 für November!), 31 (rückgängig gemacht von04
-09
/13
-19
/23
-29
).
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Standardregeln gelten für Ihre Antwort, daher dürfen Sie STDIN / STDOUT, Funktionen / Methode mit den richtigen Parametern und Rückgabeanweisungen / Ausgabe, vollständige Programme verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
- Fügen Sie ggf. auch eine Erklärung hinzu.
Testfälle ( dd-MM-yyyy
als Format):
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
, in dem das Jahr zunimmt.
10-10-2
im dritten Fall eine gültige Ausgabe?
21-07-2016
wird zurückgesetzt,12-70-6102
was auf gerundet ist12-12-6102
. Nicht sicher, wie Sie das Ergebnis erhalten##-10-6107
..