Dada una MM/DD
fecha ( 12/24
) y un intervalo de fechas de inicio / finalización ( 11/01 - 06/24
), determine si la fecha está dentro del intervalo de fechas indicado.
Los rangos de fechas pueden ser secuenciales ( 05/01 - 11/01
) o ajustarse al año siguiente ( 11/01 - 05/01
).
Ejemplos:
12/24
está en11/01 - 06/24
= verdadero06/24
está en11/01 - 06/24
= verdadero06/24
está en06/24 - 06/24
= verdadero06/24
está en11/01 - 06/23
= falso07/24
está en11/01 - 06/24
= falso07/24
está en05/01 - 11/01
= verdadero07/24
está en07/23 - 07/20
= verdadero
Los años no mater. Se supone que la fecha y / o el rango de fechas se aplican a cualquier año pasado o futuro.
La fecha de finalización siempre será posterior a la fecha de inicio. Si la fecha de finalización es numéricamente menor que la fecha de inicio, asumimos que estamos terminando el próximo año.
Las tres variables de entrada pueden ser a través de cualquier método (args, HTTP, stdin, etc.) y en cualquier formato (cadena, JSON, matriz, etc.)
La respuesta puede ser boolean
o cualquier forma de una cadena sí / no / correcta / etc. El código más corto gana.
No puede simplemente pasar argumentos a una función incorporada.
fuente
['MM', 'DD']
?11/01 - 06/24 includes 06/24?
['06', '24']
si fuera correcto[]
o qué quieres decir?2017
y el próximo2018
. ¿Cómo se supone que debemos determinar esos06/24
medios2018
y, por lo tanto, debería serTrue
más que2017
yFalse
porque es antes11/01
?date > start & date < end
" - Entonces algunos de sus casos de prueba están equivocados. Creo que lo que quieres decir esstart<=date<=end
.Respuestas:
Python , 31 bytes
Pruébalo en línea!
Toma entradas como
MM/DD
en ordentarget, start, end
.fuente
JavaScript (ES6),
2620 bytesLa salida es
0
si sea
encuentra dentro del rangob
...c
,1
si no. Editar: Guardado 6 bytes gracias a @nwellnhof.fuente
(a,b,c)=>b>c^b>a^a>c
?b>a^a>c
, pero luego pasé por alto la solución simple ...Haskell , 28 bytes
Pruébalo en línea!
Gracias a Leo por el truco de xor'ing con los booleanos
/=
.Haskell , 33 bytes
Pruébalo en línea!
fuente
show
truco es genial, pero puedes XOR los tres elementos de una manera más directa con foldl1: tio.run/…JavaScript (ES6), 31 bytes
Toma la entrada como 3 cadenas en
MM/DD
formato: fecha , rango_de , rango_to . Devuelve un booleano.Casos de prueba
Mostrar fragmento de código
fuente
MM/DD
formato, puede usar la clasificación de cadenas. Buena idea.Haskell ,
3837 bytesPruébalo en línea!
Guardado 1 byte gracias a Laikoni
fuente
(d#b)e=
.Perl 6 ,
333129 bytesPruébalo en línea!
Toma una lista que contiene inicio, fecha y fin.
-2 bytes gracias a Ramillies.
fuente
@_[0]
se puede escribir como.[0]
y[(whatever)] @_
como[(whatever)] $_
. Solo tendrá que llamarlo así$f(($s,$d,$e))
.Perl 5 , 60 bytes
59 bytes de código + 1
-a
Pruébalo en línea!
Entrada:
start_date end_date target_date
fuente