NOTA: Como soy holandés, todas las fechas están en dd-MM-yyyy
formato holandés en la descripción del desafío y los casos de prueba.
Desafío:
Entradas:
Fecha de inicio ; Fecha de finalización ; Dígito
Salidas:
todas las fechas dentro del rango (incluso en ambos lados), que contienen cantidad de dígitos únicos en su fecha.
Ejemplo:
Entradas: Fecha de inicio: 12-11-1991
; Fecha de finalización: 02-02-1992
; Dígito:4
Salidas:
con ceros a la izquierda por días / meses:
[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]
Sin ceros a la izquierda por días / meses:
[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]
Reglas de desafío:
- Las fechas de entrada y salida pueden estar en cualquier formato razonable (fecha). Puede ser una cadena en cualquier
dMy
formato (incluidos los separadores opcionales), una lista de tres enteros, el objeto de fecha nativo de su idioma, etc. La salida puede ser una lista / matriz / secuencia, impresa en STDOUT, una sola cadena delimitada, etc. - Puede incluir o excluir los ceros a la izquierda durante días / meses en sus resultados. Especifique cuál de los dos utiliza en su respuesta , ya que causará resultados diferentes. Es decir,
1-1-1991
tiene 2 dígitos únicos, pero01-01-1991
como 3 dígitos únicos. - No tiene que lidiar con los años bisiestos y las diferencias entre los calendarios gregoriano y juliano. Puede suponer que los rangos de fechas dados en los casos de prueba nunca superarán el 28 de febrero / 1 de marzo por años divisibles por 4.
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolfing. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Las reglas estándar se aplican a su respuesta con las reglas de E / S predeterminadas , por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código (es decir, TIO ).
- Además, se recomienda agregar una explicación para su respuesta.
Casos de prueba:
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
el + hh: mm es el desplazamiento de hora de su localidad desde UTC.)Respuestas:
Japt , 23 bytes
Toma las entradas de fecha como marcas de tiempo de Unix, genera una serie de cadenas con formato y guiones
0
dependientes de su ubicación. Sería 1 byte más corto en Japt v2, pero parece haber un error al convertirDate
objetos en cadenas.Intentalo
fuente
R , 81 bytes
Pruébalo en línea!
Utiliza el formato de fecha nativo de R y tiene ceros a la izquierda el día y el mes.
fuente
Rojo , 93 bytes
Pruébalo en línea!
Sin ceros a la izquierda por días / meses.
Lástima que Red convierte internamente
09-10-2019
a9-Oct-2019
- es por eso que necesitan para extraer el día / mes / año de forma individual.fuente
-=+*<>?!~&
, por eso(...)[...]"..."
se necesita un espacio en blanco (o ).Python 3.8 (prelanzamiento) , 84 bytes
-6 bytes gracias a Gloweye
Una función sin nombre que devuelve una lista de cadenas (contando / incluyendo ceros iniciales) que acepta tres argumentos:
s
, el comienzo - undatetime.date
objeto;e
, el fin - undatetime.date
objeto; yn
, el número de días: unint
objeto.Pruébalo en línea!
Nota: Como la función acepta
datetime.date
objetos, no he contado el código de importación para eso (y he trabajado para importar eldatetime.timedelta
objeto ya que es accesible indirectamente mediante la resta de estos objetos de entrada).fuente
type(obj)
es 3 bytes más corto queobj.__class__
.__class__
e hice un comentario rápido. Siempre me alegro de ayudar.JavaScript (ES6), 91 bytes
Toma la entrada como
(n)(end)(start)
, donde las fechas se esperan como marcas de tiempo Unix en milisegundos. Devuelve una lista de fechas separadas por espacios en formatoyyyy-mm-dd
.Se incluyen los ceros a la izquierda.
Pruébalo en línea!
fuente
PHP , 90 bytes
Pruébalo en línea!
Esto es con ceros a la izquierda. Las entradas son argumentos de comando (
$argv
) y las fechas son marcas de tiempo Unix en días (básicamente segundos estándar / 86400), utilicé este formato ya que no necesitamos el tiempo en este desafío y me permitió jugar 1 byte más. Sigue agregando un día para comenzar hasta que llegue al final e imprime cualquier fecha con$n
dígitos únicos en ella, separadas por_
enYmd
formato.También tiene una alternativa de 89 bytes que imprime fechas para imprimir en el mismo formato que la entrada (marcas de tiempo Unix en días).
fuente
Java (JDK) , 86 bytes
Pruébalo en línea!
Elegí usar los
0
s principales .Créditos
fuente
datesUntil
para 103 bytes . ;) Buena respuesta. No veo nada que pueda jugar golf personalmente..plusDays(1)
y elimine el.forEach(System.out::println)
y es una respuesta muy precisa porque, como escribió, las fechas se pueden devolver como objetos de valor y secuencias permitidas. ;-) ¡No tenía ni idea de quedatesUntil
existía! Gracias por eso :-)Rubí
-rdate
, 54 bytesToma 2 objetos Date y un número como entrada, y devuelve una lista de objetos Date como salida. Maneja los años bisiestos y utiliza ceros a la izquierda.
Pruébalo en línea!
fuente
C # (compilador interactivo de Visual C #)
Sin ceros a la izquierda,
104, 103 bytesPruébalo en línea!
Con ceros a la izquierda,
106105 bytesPruébalo en línea!
fuente
x =>$"
en ambas versiones para -1. :)Kotlin, 119 bytes
Sin ceros a la izquierda, toma dos
java.time.LocalDate
y aLong
, devuelve aStream
deLocalDate
sfuente
it.toString()
con(it+"")
ahorrar unos pocos bytes? Sé que esto es posible en algunos otros lenguajes como Java o .NET C #.