Ceci est inspiré par l'une des questions de Downgoat dans Sandbox, où j'ai suggéré qu'il inclue le 31 avril comme jour Pi pour les personnes qui utilisent le format jour / mois, seulement pour lui pour m'informer qu'il n'y a pas de 31 avril!
Étant donné une chaîne de date au format mois / jour qui peut ne pas être valide, affichez la date correcte à l'aide du survol. (Survolez d'abord le mois, puis le jour).
Exemples:
"15/43" - Cela se lit comme le 43e jour du 15e mois. Tout d'abord, nous reportons le mois sur l'année suivante, nous nous retrouvons donc avec 3 (mars). Maintenant, comme le mois de mars ne compte que 31 jours, nous reportons les jours supplémentaires au mois d'avril, nous affichons donc la date réelle comme "4/12" (12 avril).
"3/16" - Ceci est une date valide (16 mars). Retournez-le tel quel.
"12/64" - Ah, tant de bons souvenirs du 64 décembre ... Décembre a 31 jours, janvier a 31 jours, donc ce que je veux dire c'est "2/2" (2 février).
"19/99" - Tout d'abord, le 19 devient un 7 (juillet). Juillet a 31 jours, août a 31 jours, septembre a 30 jours, donc la sortie est "10/7" (7 octobre).
"1/99999" - Une année compte 365 jours. 99999 (mod 365) = 354. Le 354 jour de l'année est "12/20" .
"9999999/10" - Apparemment, 9999999 (mod 12) = 3, c'est donc "3/10" (10 mars).
Critères:
Le mois d'entrée est un entier> 0. Le jour d'entrée est un entier> 0. L'année n'a jamais besoin d'être spécifiée, car il n'y a pas d'années bissextiles à gérer.
Mise à jour:
Comme je pense que cela simplifierait trop le défi, les fonctions de calendrier, telles que celles de la classe Java Calendar , sont interdites. Les fonctions d'analyse et de formatage des dates sont cependant toujours autorisées.
1/99999
devrait céder 12/19
je pense.