Considérez une date formatée en YYYY-MM-DD
. Vous pouvez utiliser le joker *
à la fin de la chaîne de date. Par exemple, 2016-07-2*
décrit toutes les dates du 2016-07-20
au 2016-07-29
.
Considérons maintenant une période représentée par une date de début et une date de fin.
L'algorithme doit trouver la plus petite liste possible de dates représentant la période.
Prenons un exemple. Pour la période suivante:
- date de début:
2014-11-29
- date de fin:
2016-10-13
L'algorithme doit renvoyer un tableau contenant la liste de dates suivante:
2014-11-29
2014-11-30
2014-12-*
2015-*
2016-0*
2016-10-0*
2016-10-10
2016-10-11
2016-10-12
2016-10-13
Réponses:
PHP,
541343 octetsJe voulais que l'algorithme fonctionne en premier lieu; mais jouer au golf était en fait beaucoup plus amusant que ce à quoi je m'attendais (en particulier en parcourant les formats de date et d'heure pris en charge ).
Trois actions majeures ont permis d'économiser environ 130 octets; mais les 70 octets de golfs mineurs
(qui ont également rendu obsolète l'une des grandes étapes) ont apporté beaucoup de plaisir.
prend l'entrée des arguments de ligne de commande. Exécutez-le
-nr
ou testez-le en ligne .Remarques
Y-m-3*
pourY-m-30
; ajouter 7 octets pour corriger: insérer|$a==$t
après777600))
.+$p
par+!$p
.mais j'attendrai un peu pour voir si quelqu'un d'autre soumet avant de me gâter.
la source