Septembre 1993 est connu sur Usenet comme le mois de septembre qui n'a jamais pris fin. Ainsi, par exemple, le jour où cette question est affichée est le samedi 87 septembre 1993.
Votre programme ou fonction doit prendre n'importe quelle date grégorienne (avec année positive) en entrée et renvoyer la même date que la sortie si elle est antérieure à septembre 1993 ou la date du calendrier de septembre 1993 si par la suite.
Vous pouvez accepter AAAA-MM-JJ, AAAA / MM / JJ, MM / JJ / AAAA, JJ / MM / AAAA, D-Monthnameabbr-AAAA, ou tout autre format populaire qui utilise l'intégralité de l'année (par opposition à la année modulo 100). Vous n'avez qu'à accepter un tel format, de votre choix. Le format de sortie doit correspondre au format d'entrée.
Exemple d'entrée → sortie:
- Dimanche 6 août 2017 → dimanche 8741 septembre 1993
- Mardi 28 janvier 1986 → Mardi 28 janvier 1986
Ou:
- 2017-08-06 → 1993-09-8741
- 1986-01-28 → 1986-01-28
Dans l'intérêt de réponses plus intéressantes, l'utilisation d'une fonction intégrée conçue à cet effet (comme la sdate
commande UN * X ) est interdite. Mis à part cela et les exceptions standard , c'est le golf, donc la réponse la plus courte l'emporte.
Réponses:
JavaScript (ES6), 48 octets
Basé sur l'algorithme de @ Mr.Xcoder.
la source
Python 3 , 109 octets
Essayez-le en ligne!
-59 octets grâce à notjagan
-3 octets grâce à M. Xcoder
-2 octets grâce à officialaimm
-12 octets merci à Jonathan Allan
la source
-8644+1
peut être-8643
..z>9
sinon vous perdez le zéro de tête le jour.Mathematica, 55 octets
E / S
-6 octets merci à user202729
la source
{1993,9,1}
reculer la marque horaire d'un jour, afin de supprimer le+1
, en économisant 2 octets?{1993,9,0}
c'est permis.Perl 5 , 102 + 16 (-MTime :: Local -F-) = 118 octets
Essayez-le en ligne!
Prend la date comme "AAAA-MM-JJ"
Je pense que j'ai fait le compte à droite sur les options de ligne de commande. Je suis sûr que quelqu'un me corrigera si je ne le fais pas.
la source
C # (.NET Core) , 107 octets
Essayez-le en ligne!
Prend les dates comme M / D / YYYY (les nombres inférieurs à 10 écrits avec seulement 1 chiffre). Écrit à partir de mon téléphone portable en utilisant l'API par cœur.
la source
Gaia , 78 octets
Essayez-le en ligne!
Explication
Premièrement, nous avons une fonction d'aide qui détermine si une année est une année bissextile.
La fonction principale fait le reste du travail:
la source