REMARQUE: puisque je suis moi-même néerlandais, toutes les dates sont au dd-MM-yyyy
format néerlandais dans la description du défi et les cas de test.
Défi:
Entrées:
date de début ; Date de fin ; Chiffre
Sorties:
toutes les dates dans la plage (y compris des deux côtés), qui contiennent quantité de chiffres uniques dans leur date.
Exemple:
Contributions: Date de début: 12-11-1991
; Date de fin: 02-02-1992
; Chiffre:4
Les sorties:
avec 0 en tête pour les jours / mois:
[20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 01-12-1991, 02-12-1991, 09-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 01-01-1992, 02-01-1992, 09-01-1992, 10-01-1992, 11-01-1992, 12-01-1992, 19-01-1992, 20-01-1992, 21-01-1992, 22-01-1992, 29-01-1992, 01-02-1992, 02-02-1992]
Sans 0 en tête pour les jours / mois:
[20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 3-12-1991, 4-12-1991, 5-12-1991, 6-12-1991, 7-12-1991, 8-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 3-1-1992, 4-1-1992, 5-1-1992, 6-1-1992, 7-1-1992, 8-1-1992, 10-1-1992, 13-1-1992, 14-1-1992, 15-1-1992, 16-1-1992, 17-1-1992, 18-1-1992, 20-1-1992, 23-1-1992, 24-1-1992, 25-1-1992, 26-1-1992, 27-1-1992, 28-1-1992, 31-1-1992]
Règles du défi:
- Les dates d'entrée et de sortie peuvent être dans n'importe quel format raisonnable (date-). Peut être une chaîne dans n'importe quel
dMy
format (y compris des séparateurs facultatifs), une liste de trois entiers, l'objet Date natif de votre langue, etc. La sortie peut être une liste / tableau / flux, imprimé sur STDOUT, une seule chaîne délimitée, etc. - Vous êtes autorisé à inclure ou à exclure les premiers 0 pour les jours / mois dans vos sorties. Veuillez spécifier lequel des deux vous utilisez dans votre réponse , car cela entraînera des résultats différents. C'est à dire
1-1-1991
a 2 chiffres uniques, mais01-01-1991
comme 3 chiffres uniques. - Vous n'avez pas à gérer les années bissextiles et les différences entre les calendriers grégorien et julien. Vous pouvez supposer que les plages de dates données dans les cas de test ne dépasseront jamais le 28 février / 1er mars pour les années divisibles par 4.
- Le chiffre d'entrée est garanti dans la plage , traitant donc n'est pas spécifié (renvoyer une liste vide serait plus raisonnable, mais donner une erreur ou un résultat incorrect est très bien aussi; vous avez gagné pas besoin de gérer cette entrée).
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues non-golfeur de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse avec des règles d'E / S par défaut , vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code (par exemple TIO ).
- De plus, l'ajout d'une explication à votre réponse est fortement recommandé.
Cas de test:
Inputs: [12-11-1991, 02-02-1992], 4
Outputs with leading 0s: [20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 01-12-1991, 02-12-1991, 09-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 01-01-1992, 02-01-1992, 09-01-1992, 10-01-1992, 11-01-1992, 12-01-1992, 19-01-1992, 20-01-1992, 21-01-1992, 22-01-1992, 29-01-1992, 01-02-1992, 02-02-1992]
Outputs without leading 0s: [20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 3-12-1991, 4-12-1991, 5-12-1991, 6-12-1991, 7-12-1991, 8-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 3-1-1992, 4-1-1992, 5-1-1992, 6-1-1992, 7-1-1992, 8-1-1992, 10-1-1992, 13-1-1992, 14-1-1992, 15-1-1992, 16-1-1992, 17-1-1992, 18-1-1992, 20-1-1992, 23-1-1992, 24-1-1992, 25-1-1992, 26-1-1992, 27-1-1992, 28-1-1992, 31-1-1992]
Inputs: [19-09-2019, 30-09-2019], 5
Outputs (same with and without leading 0s): [23-09-2019, 24-09-2019, 25-09-2019, 26-09-2019, 27-09-2019, 28-09-2019, 30-09-2019]
Inputs: [19-09-2019, 30-09-2019], 8
Output (same with and without leading 0s): []
Inputs: [20-06-1749, 30-06-1749], 8
Outputs with leading 0s: [23-06-1749, 25-06-1749, 28-06-1749]
Outputs without leading 0s: []
Inputs: [10-12-1969, 12-01-1970], 6
Outputs (same with and without leading 0s): [30-12-1969]
Inputs: [10-12-1969, 12-01-1970], 5
Outputs with leading 0s: [10-12-1969, 13-12-1969, 14-12-1969, 15-12-1969, 17-12-1969, 18-12-1969, 20-12-1969, 23-12-1969, 24-12-1969, 25-12-1969, 27-12-1969, 28-12-1969, 31-12-1969, 02-01-1970, 03-01-1970, 04-01-1970, 05-01-1970, 06-01-1970, 08-01-1970, 12-01-1970]
Outputs without leading 0s: [10-12-1969, 13-12-1969, 14-12-1969, 15-12-1969, 17-12-1969, 18-12-1969, 20-12-1969, 23-12-1969, 24-12-1969, 25-12-1969, 27-12-1969, 28-12-1969, 31-12-1969, 2-1-1970, 3-1-1970, 4-1-1970, 5-1-1970, 6-1-1970, 8-1-1970, 12-1-1970]
Inputs: [11-11-1111, 11-11-1111], 1
Output (same with and without leading 0s): [11-11-1111]
YYYY-MM-DDThh:mm:ss.mmm +hh:mm
:, le + hh: mm étant le décalage horaire de votre locale par rapport à UTC.)Réponses:
Japt , 23 octets
Prend les entrées de date sous forme d'horodatages Unix, génère un tableau de chaînes avec un formatage et des
0
s principaux en fonction de votre environnement local. Serait de 1 octet plus court dans Japt v2 mais il semble y avoir un bug lors de la conversion d'Date
objets en chaînes.Essayez-le
la source
R , 81 octets
Essayez-le en ligne!
Utilise le format de date natif de R et comporte des zéros non significatifs le jour et le mois.
la source
Rouge , 93 octets
Essayez-le en ligne!
Sans 0 en tête pour les jours / mois.
Dommage que Red convertit en interne
09-10-2019
à9-Oct-2019
- c'est la raison pour laquelle je dois extraire le jour / mois / année individuellement.la source
-=+*<>?!~&
, c'est pourquoi un espace (ou(...)[...]"..."
) est nécessaire.Python 3.8 (pré-version) , 84 octets
-6 octets grâce à Gloweye
Une fonction sans nom qui renvoie une liste de chaînes (comptant / incluant les zéros non significatifs) qui accepte trois arguments:
s
, le début - undatetime.date
objet;e
, la fin - undatetime.date
objet; etn
, le nombre de jours - unint
objet.Essayez-le en ligne!
Remarque: Comme la fonction accepte des
datetime.date
objets, je n'ai pas compté le code d'importation pour cela (et j'ai contourné l'importation de l'datetime.timedelta
objet car il est indirectement accessible via la soustraction de ces objets d'entrée).la source
type(obj)
est 3 octets plus court queobj.__class__
.__class__
et fait un commentaire rapide. Toujours heureux de vous aider.JavaScript (ES6), 91 octets
Prend l'entrée comme
(n)(end)(start)
, où les dates sont attendues comme horodatages Unix en millisecondes. Renvoie une liste de dates séparées par des espaces au formatyyyy-mm-dd
.Les 0 en tête sont inclus.
Essayez-le en ligne!
la source
PHP , 90 octets
Essayez-le en ligne!
C'est avec des 0 en tête. Les entrées sont des arguments de commande (
$argv
) et les dates sont des horodatages Unix en jours (essentiellement des secondes standard / 86400), j'ai utilisé ce format car nous n'avons pas besoin de temps dans ce défi et cela m'a permis de jouer 1 octet de plus. Continue d'ajouter un jour pour commencer jusqu'à la fin et imprime toutes les dates avec$n
des chiffres uniques, séparés par_
enYmd
format.Possède également une alternative de 89 octets qui imprime les dates à produire au même format que l'entrée (horodatages Unix en jours).
la source
Java (JDK) , 86 octets
Essayez-le en ligne!
J'ai choisi d'utiliser le leader
0
art.Crédits
la source
datesUntil
pour 103 octets . ;) Bonne réponse. Je ne vois rien qui puisse être joué personnellement..plusDays(1)
et supprimez simplement le.forEach(System.out::println)
et c'est une réponse très intéressante car, comme vous l'avez écrit, les dates peuvent être renvoyées car les objets de valeur et les flux sont autorisés. ;-) Je n'avais aucune idée de l'existencedatesUntil
même! Merci pour ça :-)Rubis
-rdate
, 54 octetsPrend 2 objets Date et un nombre en entrée et renvoie une liste d'objets Date en sortie. Gère les années bissextiles et utilise les zéros non significatifs.
Essayez-le en ligne!
la source
C # (compilateur interactif Visual C #)
Sans 0 en tête,
104, 103 octets enEssayez-le en ligne!
Avec 0 en tête,
106105 octetsEssayez-le en ligne!
la source
x =>$"
dans vos deux versions pour -1. :)Kotlin, 119 octets
Sans 0 en tête, prend deux
java.time.LocalDate
et aLong
, renvoie aStream
deLocalDate
sla source
it.toString()
par(it+"")
pour économiser quelques octets? Je sais que cela est possible dans d'autres langages comme Java ou .NET C #.