Eingang:
Ein Date (enthält dd, MMund yyyy). Ein Datumsobjekt oder drei separate Ganzzahlen sind ebenfalls als Eingabe gültig.
Ausgabe:
Jedes Teil ( dd, MMund yyyy) wird einzeln zurückgesetzt und auf das nächste gültige Datum gerundet.
Zum Beispiel (im Format dd-MM-yyyy):
21-10-2016wird12-01-6102
Herausforderungsregeln:
- Nur
dd,MM,yyyygü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;ddMMyyyyEtc.
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
1582also 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). (Also0000keine 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 von03oder 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-yyyyals 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-2im dritten Fall eine gültige Ausgabe?
21-07-2016wird zurückgesetzt,12-70-6102was auf gerundet ist12-12-6102. Nicht sicher, wie Sie das Ergebnis erhalten##-10-6107..