Isso é inspirado em uma das perguntas de Downgoat no Sandbox, onde sugeri que ele incluísse o dia 31 de abril como dia do Pi para pessoas que usam o formato dia / mês, apenas para que ele me informasse que não há 31 de abril!
Dada uma sequência de datas no formato mês / dia que pode ser inválida, imprima a data correta usando rollover. (Primeiro rollover do mês e depois rollover do dia).
Exemplos:
"15/43" - é o 43º dia do 15º mês. Primeiro, rolamos o mês para o próximo ano e terminamos com 3 (março). Agora, como março tem apenas 31 dias, passamos os dias extras para abril, e produzimos a data real como "4/12" (12 de abril).
"3/16" - esta é uma data válida (16 de março). Devolva como está.
"12/64" - Ah, tantas boas lembranças de 64 de dezembro ... Dezembro tem 31 dias, janeiro tem 31 dias, então o que eu realmente quero dizer é "2/2" (2 de fevereiro).
"19/99" - Primeiro, os 19 se tornam 7 (julho). Julho tem 31 dias, agosto tem 31 dias, setembro tem 30 dias, portanto a saída é "10/7" (7 de outubro).
"1/99999" - um ano tem 365 dias. 99999 (mod 365) = 354. Os 354 dias do ano são "12/20" .
"9999999/10" - aparentemente, 9999999 (mod 12) = 3, então isso é "3/10" (10 de março).
Critério:
O mês de entrada é um número inteiro> 0. O dia de entrada é um número inteiro> 0. O ano nunca precisa ser especificado, portanto, não há anos bissextos para lidar.
Atualizar:
Como acho que simplificaria demais o desafio, funções de calendário, como as da classe Java Calendar , são proibidas. As funções de análise / formatação de data ainda são permitidas.
1/99999
deve render, 12/19
eu acho.