Dada una MM/DDfecha ( 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/24está en11/01 - 06/24= verdadero06/24está en11/01 - 06/24= verdadero06/24está en06/24 - 06/24= verdadero06/24está en11/01 - 06/23= falso07/24está en11/01 - 06/24= falso07/24está en05/01 - 11/01= verdadero07/24está 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 booleano 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?2017y el próximo2018. ¿Cómo se supone que debemos determinar esos06/24medios2018y, por lo tanto, debería serTruemás que2017yFalseporque 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/DDen ordentarget, start, end.fuente
JavaScript (ES6),
2620 bytesLa salida es
0si seaencuentra dentro del rangob...c,1si 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
showtruco 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/DDformato: fecha , rango_de , rango_to . Devuelve un booleano.Casos de prueba
Mostrar fragmento de código
fuente
MM/DDformato, 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
-aPruébalo en línea!
Entrada:
start_date end_date target_datefuente