Biorąc pod uwagę MM/DD
datę ( 12/24
) i zakres dat rozpoczęcia / zakończenia ( 11/01 - 06/24
), dowiedz się, czy data mieści się w podanym zakresie dat.
Zakresy dat mogą być sekwencyjne ( 05/01 - 11/01
) lub obejmować kolejny rok ( 11/01 - 05/01
).
Przykłady:
12/24
jest w11/01 - 06/24
= Prawda06/24
jest w11/01 - 06/24
= Prawda06/24
jest w06/24 - 06/24
= Prawda06/24
jest w11/01 - 06/23
= False07/24
jest w11/01 - 06/24
= False07/24
jest w05/01 - 11/01
= Prawda07/24
jest w07/23 - 07/20
= Prawda
Lata nie mają znaczenia. Zakłada się, że data i / lub zakres dat będzie obowiązywał dla dowolnego roku przeszłego lub przyszłego.
Data końcowa zawsze będzie późniejsza niż data początkowa. Jeśli data końcowa jest liczbowo krótsza niż data początkowa, zakładamy, że zbliżamy się do następnego roku.
Trzy zmienne wejściowe mogą być za pomocą dowolnej metody (args, HTTP, stdin itp.) I w dowolnym formacie (ciąg, JSON, tablica itp.)
Odpowiedź może być boolean
dowolną postacią ciągu tak / nie / poprawny / itp. Najkrótszy kod wygrywa.
Nie można po prostu przekazywać argumentów do wbudowanej funkcji.
źródło
['MM', 'DD']
?11/01 - 06/24 includes 06/24?
['06', '24']
, jak w innym przypadku[]
lub co masz na myśli?2017
i w przyszłym roku2018
. Jak mamy określić te06/24
środki,2018
a zatem powinniśmy być,True
a nie2017
dlatego,False
że tak było wcześniej11/01
?date > start & date < end
” - W takim razie niektóre z twoich przypadków testowych są nieprawidłowe. Myślę, że masz na myślistart<=date<=end
.Odpowiedzi:
Python , 31 bajtów
Wypróbuj online!
Pobiera dane zgodnie
MM/DD
z kolejnościątarget, start, end
.źródło
JavaScript (ES6),
2620 bajtówWyjście jest
0
jeślia
mieści się w zakresieb
...c
,1
czy nie. Edycja: Zapisano 6 bajtów dzięki @nwellnhof.źródło
(a,b,c)=>b>c^b>a^a>c
?b>a^a>c
, ale potem przeoczyłem prostą poprawkę ...Haskell , 28 bajtów
Wypróbuj online!
Dzięki Leo za sztuczkę z Xor'ingiem z Booleanami
/=
.Haskell , 33 bajty
Wypróbuj online!
źródło
show
sztuczka jest fajna, ale możesz XOR trzy elementy w bardziej bezpośredni sposób dzięki foldl1: tio.run/…JavaScript (ES6), 31 bajtów
Pobiera dane wejściowe jako 3 ciągi znaków w
MM/DD
formacie: data , zakres_od , zakres_do . Zwraca wartość logiczną.Przypadki testowe
Pokaż fragment kodu
źródło
MM/DD
formatowi możesz po prostu użyć sortowania ciągów. Dobry pomysł.Haskell ,
3837 bajtówWypróbuj online!
Zaoszczędzono 1 bajt dzięki Laikoni
źródło
(d#b)e=
.Perl 6 ,
333129 bajtówWypróbuj online!
Pobiera listę zawierającą datę rozpoczęcia, datę i zakończenie.
-2 bajty dzięki Ramillies.
źródło
@_[0]
można zapisać jako.[0]
i[(whatever)] @_
jako[(whatever)] $_
. Musisz to tak nazwać$f(($s,$d,$e))
.Perl 5 , 60 bajtów
59 bajtów kodu + 1
-a
Wypróbuj online!
Wejście:
start_date end_date target_date
źródło