Dies ist inspiriert von einer der Fragen von Downgoat in Sandbox, in der ich vorgeschlagen habe, den 31. April als Pi-Tag für Personen mit Tag / Monat-Format aufzunehmen, nur damit er mir mitteilt, dass es keinen 31. April gibt!
Bei einer Datumszeichenfolge im Format Monat / Tag , die möglicherweise ungültig ist, geben Sie das richtige Datum mit dem Rollover aus. (Zuerst den Monat und dann den Tag verschieben).
Beispiele:
"15/43" - Dies ist der 43. Tag des 15. Monats. Zuerst verschieben wir den Monat auf das nächste Jahr, sodass wir am Ende 3 (März) haben. Da der März nur 31 Tage hat, verlängern wir die Verlängerungstage auf April, sodass wir das aktuelle Datum als "4/12" (12. April) ausgeben .
"3/16" - Dies ist ein gültiges Datum (16. März). Geben Sie es so zurück, wie es ist.
"12/64" - Ah, so viele schöne Erinnerungen vom 64. Dezember ... Der Dezember hat 31 Tage, der Januar hat 31 Tage, also meine ich wirklich "2/2" (2. Februar).
"19/99" - Zuerst wird die 19 eine 7 (Juli). Juli hat 31 Tage, August hat 31 Tage, September hat 30 Tage, die Ausgabe ist also "10/7" (7. Oktober).
"1/99999" - Ein Jahr hat 365 Tage. 99999 (Mod 365) = 354. Der 354. Tag des Jahres ist "12/20" .
"9999999/10" - Anscheinend 9999999 (Mod 12) = 3, dies ist also "3/10" (10. März).
Kriterien:
Der Eingabemonat ist eine Ganzzahl> 0. Der Eingabetag ist eine Ganzzahl> 0. Das Jahr muss nie angegeben werden, da keine Schaltjahre zu behandeln sind.
Aktualisieren:
Da ich der Meinung bin, dass dies die Herausforderung übermäßig vereinfachen würde, sind Kalenderfunktionen wie die in der Java Calendar- Klasse gesperrt. Datumsanalyse- / Formatierungsfunktionen sind jedoch weiterhin zulässig.
1/99999
sollte nachgeben, 12/19
denke ich.