Questo è ispirato da una delle domande di Downgoat in Sandbox, in cui gli ho suggerito di includere il 31 aprile come Pi day per le persone che usano il formato giorno / mese, solo per lui che mi informa che non c'è 31 aprile!
Data una stringa di data nel formato mese / giorno che potrebbe non essere valida, emettere la data corretta usando il rollover. (Rollover prima il mese, quindi rollover il giorno).
Esempi:
"15/43" - Questo si legge come il 43 ° giorno del 15 ° mese. Innanzitutto, passiamo al mese successivo, quindi finiamo con il 3 (marzo). Ora, poiché marzo ha solo 31 giorni, passiamo al rollover dei giorni in più fino ad aprile, quindi produciamo la data effettiva come "4/12" (12 aprile).
"3/16" - Questa è una data valida (16 marzo). Restituirlo così com'è.
"12/64" - Ah, tanti bei ricordi dal 64 dicembre ... Dicembre ha 31 giorni, gennaio ha 31 giorni, quindi quello che intendo davvero è "2/2" (2 febbraio).
"19/99" - Innanzitutto, il 19 diventa un 7 (luglio). Luglio ha 31 giorni, agosto ha 31 giorni, settembre ha 30 giorni, quindi l'output è "10/7" (7 ottobre).
"1/99999" - Un anno ha 365 giorni. 99999 (mod 365) = 354. Il giorno 354 dell'anno è "12/20" .
"9999999/10" - Apparentemente, 9999999 (mod 12) = 3, quindi questo è "3/10" (10 marzo).
criteri:
Il mese di input è un numero intero> 0. Il giorno di input è un numero intero> 0. L'anno non deve mai essere specificato, pertanto non ci sono anni bisestili da affrontare.
Aggiornare:
Poiché penso che semplificherebbe eccessivamente la sfida, le funzioni del calendario, come quelle della classe Calendar Java , sono vietate. Le funzioni di analisi / formattazione della data sono comunque consentite.
1/99999
dovrebbe 12/19
pensare.