L'ordre de formatage des dates est l'un des problèmes les plus complexes et les plus conflictuels auxquels le monde est confronté aujourd'hui. Certains d'entre nous soutiennent avec véhémence que le mois / jour / année est approprié, étant donné que c'est ainsi que nous disons les dates à haute voix. D'autres proclament haut et fort que le jour / mois / année est le meilleur, car il place les termes dans l'ordre croissant de la durée qu'ils représentent.
Trop c'est trop. Les ordinateurs peuvent résoudre ce différend simplement et équitablement. Votre code, une fonction ou un programme complet, prendra une chaîne de date délimitée par des barres obliques, par exemple 12/1/2015
. Notez que c'est le format exact, sans zéros de tête et avec une année à quatre chiffres à la fin.
- Si c'est vraiment mois / jour / année, par exemple
10/31/1998
, la sortie d' une représentation textuelle de cette date dans ce format exact, avec le nom complet du mois, le jour et l' année:October 31, 1998
- Si c'est vraiment jour / mois / année, par exemple
25/12/1989
, sortie le même type de représentation du texte:December 25, 1989
. - S'il est ambigu, que ce soit Mois / Jour / Année ou Jour / Mois / Année, affichez une date qui résout l'ambiguïté en combinant les deux dates possibles comme suit:
- Créer un nouveau nom de mois en prenant la première moitié du nom du précédent mois et ajouter la deuxième moitié du plus tard mois. Pendant des mois avec une longueur impaire, la première moitié reçoit la lettre supplémentaire. Pour être explicite, la première moitié des mois sont
Janu
,Febr
,Mar
,Apr
,Ma
,Ju
,Ju
,Aug
,Septe
,Octo
,Nove
etDece
et les deuxièmes moitiés sont doncary
,uary
,ch
,il
,y
,ne
,ly
,ust
,mber
,ber
,mber
etmber
. - Calculez la journée en faisant la moyenne des deux jours possibles, en prenant la parole lorsque la moyenne n'est pas un entier.
- Sortez la représentation textuelle de cette date, par exemple pour la
10/8/2011
sortieAugber 9, 2011
.
- Créer un nouveau nom de mois en prenant la première moitié du nom du précédent mois et ajouter la deuxième moitié du plus tard mois. Pendant des mois avec une longueur impaire, la première moitié reçoit la lettre supplémentaire. Pour être explicite, la première moitié des mois sont
Si la date d'entrée ne peut pas être Mois / Jour / Année ou Jour / Mois / Année (par exemple 13/13/2013
ou même 2/30/2002
), tout comportement est acceptable. Ce code golf, le code le plus court gagne!
Cas de test:
10/31/1998
donne October 31, 1998
25/12/1989
donne December 25, 1989
10/8/2011
donne Augber 9, 2011
8/5/1957
donne Maust 6, 1957
9/12/2012
(curieusement) donne September 10, 2012
1/1/2000
donne January 1, 2000
without leading zeroes and with a four-digit year at the end
impliqueyear >= 1000