На це надихає одне з питань Downgoat у Sandbox, де я запропонував йому включити 31 квітня як пі-день для людей, які використовують формат день / місяць, лише для того, щоб він повідомив мені, що немає 31 квітня!
Враховуючи рядок дати у форматі місяць / день , який може бути недійсним, виведіть правильну дату за допомогою перекидання. (Спочатку перевертайте місяць, потім перекидайте день).
Приклади:
"15/43" - Це звучить як 43-й день 15-го місяця. Спочатку ми перевертаємо місяць на наступний рік, тому закінчуємо 3 (березень). Тепер, оскільки у березня всього 31 день, ми переносимо додаткові дні на квітень, тому фактичну дату ми виводимо як "4/12" (12 квітня).
"3/16" - це дійсна дата (16 березня). Поверніть його так, як є.
"12/64" - Ах, стільки приємних спогадів від 64 грудня ... Грудень має 31 день, січень - 31 день, тому я насправді маю на увазі "2/2" (2 лютого).
"19/99" - По-перше, 19 стає 7 (липень). Липень має 31 день, серпень - 31 день, вересень - 30 днів, тому вихід "10/7" (7 жовтня).
"1/99999" - Рік має 365 днів. 99999 (мод 365) = 354. Днем 354 року є "12/20" .
"9999999/10" - Мабуть, 9999999 (моди 12) = 3, тож це "3/10" (10 березня).
Критерії:
Місячний місяць введення - ціле число> 0. День введення - це ціле число> 0. Рік ніколи не потрібно вказувати, тому що таких високосних років не потрібно.
Оновлення:
Як я думаю, це надто спростило б виклик, функції календаря, такі як у класі Java Calendar , заборонені. Функції розбору / форматування дат все ж дозволені.
1/99999
повинен поступитися 12/19
.