Stellen Sie anhand eines MM/DD
Datums ( 12/24
) und eines Start- / Enddatumsbereichs ( 11/01 - 06/24
) fest, ob das Datum innerhalb des angegebenen Datumsbereichs liegt.
Datumsbereiche können sequentiell sein ( 05/01 - 11/01
) oder auf das nächste Jahr umlaufen ( 11/01 - 05/01
).
Beispiele:
12/24
ist in11/01 - 06/24
= True06/24
ist in11/01 - 06/24
= True06/24
ist in06/24 - 06/24
= True06/24
ist in11/01 - 06/23
= False07/24
ist in11/01 - 06/24
= False07/24
ist in05/01 - 11/01
= True07/24
ist in07/23 - 07/20
= True
Jahre spielen keine Rolle. Es wird davon ausgegangen, dass das Datum und / oder der Datumsbereich für jedes vergangene oder zukünftige Jahr gilt.
Das Enddatum liegt immer nach dem Startdatum. Wenn das Enddatum numerisch unter dem Startdatum liegt, gehen wir davon aus, dass wir uns auf das nächste Jahr konzentrieren.
Die drei Eingabevariablen können über eine beliebige Methode (args, HTTP, stdin usw.) und in einem beliebigen Format (Zeichenfolge, JSON, Array usw.) erfolgen.
Die Antwort kann eine boolean
beliebige Form einer Ja / Nein / Richtig / etc .. Zeichenfolge sein. Der kürzeste Code gewinnt.
Sie können Argumente nicht einfach an eine integrierte Funktion übergeben.
quelle
['MM', 'DD']
?11/01 - 06/24 includes 06/24?
['06', '24']
wenn es richtig ist[]
oder was meinst du?2017
und nächstes Jahr2018
. Wie sollen wir das06/24
Mittel bestimmen2018
und sollten esTrue
eher sein als2017
und so,False
weil es vorher ist11/01
?date > start & date < end
" - Dann sind einige Ihrer Testfälle falsch. Ich denke was du meinst iststart<=date<=end
.Antworten:
Python , 31 Bytes
Probieren Sie es online aus!
Nimmt Eingaben wie
MM/DD
in der Reihenfolge vortarget, start, end
.quelle
JavaScript (ES6),
26 bis20 ByteDie Ausgabe erfolgt,
0
wenna
innerhalb des Bereichs liegtb
...c
,1
wenn nicht. Edit: 6 Bytes dank @nwellnhof gespeichert.quelle
(a,b,c)=>b>c^b>a^a>c
?b>a^a>c
, aber ich habe dann die einfache Lösung übersehen ...Haskell , 28 Bytes
Probieren Sie es online aus!
Vielen Dank an Leo für den Trick, die Booleschen mit xor'ing
/=
.Haskell , 33 Bytes
Probieren Sie es online aus!
quelle
show
Trick ist cool, aber Sie können die drei Elemente direkter mit foldl1 XOR: tio.run/…JavaScript (ES6), 31 Byte
Übernimmt die Eingabe als 3 Zeichenfolgen im
MM/DD
Format: Datum , Bereich_von , Bereich_zu . Gibt einen Booleschen Wert zurück.Testfälle
Code-Snippet anzeigen
quelle
MM/DD
Formats können Sie einfach die Zeichenfolgensortierung verwenden. Gute Idee.Haskell ,
3837 BytesProbieren Sie es online aus!
1 Byte dank Laikoni gespeichert
quelle
(d#b)e=
.Perl 6 ,
333129 BytesProbieren Sie es online aus!
Nimmt eine Liste mit Start, Datum und Ende.
-2 Bytes dank Ramillies.
quelle
@_[0]
kann als.[0]
und[(whatever)] @_
als geschrieben werden[(whatever)] $_
. Sie müssen es nur so nennen$f(($s,$d,$e))
.Perl 5 , 60 Bytes
59 Bytes Code + 1
-a
Probieren Sie es online aus!
Eingang:
start_date end_date target_date
quelle