Étant donné une date écrite dans l'un (doit gérer tous dans le même programme) des formats suivants, l'analyser en un valide yyyy/mm/dd date
.
17th May 2012
March 14th, 2016
20 February 2014
September 14, 2017
Sunday, June 8, 2015
Règles
- Les dates seront parfois invalides, c.-à-d. jour incorrect pour le mois ou le nombre de mois dans une année, vous devez gérer les deux cas. Soit en faisant une erreur soit en renvoyant une valeur de falsey cohérente, vous choisissez. (Ils s'en tiendront toutefois aux formats de modèles ci-dessus)
- Un remplissage pour les jours et les mois de moins de 10 doit être utilisé pour créer une sortie à deux chiffres.
- Les noms de mois seront toujours le nom complet, pas raccourcis à leurs homologues à trois caractères.
- Vous pouvez supposer que l'année sera toujours comprise dans la plage 0000-9999.
- Les nombres négatifs ne doivent pas être traités.
- Vous pouvez créer un programme ou une fonction complète afin que la sortie puisse être dans n'importe quel format, imprimée sur la console ou renvoyée par une fonction.
- L'entrée sera toujours une chaîne, la sortie doit toujours être une chaîne, si elle est plus courte pour la prendre comme un seul argument dans un tableau par exemple.
["17th May 2012"]
vous pouvez le faire et la sortie peut être la même["2012/05/17"]
- Vous pouvez supposer que l'orthographe en entrée sera correcte.
BONUS: cos qui ici n'aime pas un défi;)
Si vous parvenez à autoriser également les formats d'entrée de The Fourteenth of March, 2016
ou March the Fourteenth, 2016
vous pouvez prendre 20 octets supplémentaires sur votre code avec tout octet final comptant moins de 1, ce qui donne 1.
Voici les numéros écrits complets pour chacun des jours afin d'éviter toute confusion sur l'orthographe.
First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Nineth, Tenth, Eleventh, Twelfth, Thirteenth, Fourteenth, Fifteenth, Sixteenth, Seventeenth, Eighteenth, Nineteenth, Twentieth, Twenty First, Twenty Second, Twenty Third, Twenty Fourth, Twenty Fifth, Twenty Sixth, Twenty Seventh, Twenty Eighth, Twenty Nineth, Thirtieth, Thirty First
Cas de test
INPUT | Output
17th May 2012 | 2012/05/17
March 14th, 2016 | 2016/03/14
20 February 2014 | 2014/02/20
September 14, 2017 | 2017/09/14
Sunday, June 8, 2015 | 2015/06/08
1st January 1918 | 1918/01/01
The Fourteenth of March, 2016 | 2016/03/14
March the Fourteenth, 2016 | 2016/03/14
November the Seventeenth, 2019 | 2019/11/17
The Thirtieth of April, 2016 | 2016/04/30
30 February 2014 | Invalid
September 99, 2017 | Invalid
Sunday, June8, 2015 | Invalid
The Thirty First of April, 2016 | Invalid
20 February 2014
sont par défaut prises en charge dans de nombreux analyseurs de date, mais 17th
et Sunday, June 8, 2015
sont un peu plus difficiles à analyser (selon la langue).
Thursday, August 25, 2017
valide? Je vois des soumissions ignorant le DOW.