Étant donné une MM/DD
date ( 12/24
) et une plage de dates de début / fin ( 11/01 - 06/24
), déterminez si la date se situe dans la plage de dates indiquée.
Les plages de dates peuvent être séquentielles ( 05/01 - 11/01
) ou remonter à l'année suivante ( 11/01 - 05/01
).
Exemples:
12/24
est dans11/01 - 06/24
= True06/24
est dans11/01 - 06/24
= True06/24
est dans06/24 - 06/24
= True06/24
est11/01 - 06/23
dedans = Faux07/24
est11/01 - 06/24
dedans = Faux07/24
est dans05/01 - 11/01
= True07/24
est dans07/23 - 07/20
= True
Les années ne comptent pas. La date et / ou la plage de dates est supposée s'appliquer à toute année passée ou future.
La date de fin sera toujours postérieure à la date de début. Si la date de fin est numériquement inférieure à la date de début, nous supposons que nous terminons l'année suivante.
Les trois variables d'entrée peuvent être via n'importe quelle méthode (args, HTTP, stdin, etc.) et dans n'importe quel format (chaîne, JSON, tableau, etc.)
La réponse peut être boolean
ou n'importe quelle forme de chaîne oui / non / correcte / etc. Le code le plus court gagne.
Vous ne pouvez pas simplement passer des arguments à une fonction intégrée.
la source
['MM', 'DD']
?11/01 - 06/24 includes 06/24?
['06', '24']
si vous avez raison[]
ou que voulez-vous dire?2017
et l'année prochaine2018
. Comment sommes-nous censés déterminer ce06/24
moyen2018
et donc devrait êtreTrue
plutôt que2017
et doncFalse
parce que c'est avant11/01
?date > start & date < end
" - Alors certains de vos cas de test sont erronés. Je pense que vous voulez direstart<=date<=end
.Réponses:
Python , 31 octets
Essayez-le en ligne!
Prend les entrées comme
MM/DD
dans l'ordretarget, start, end
.la source
JavaScript (ES6),
2620 octetsLa sortie est
0
sia
se situe dans la plageb
...c
,1
sinon. Edit: 6 octets enregistrés grâce à @nwellnhof.la source
(a,b,c)=>b>c^b>a^a>c
?b>a^a>c
, mais j'ai ensuite ignoré la solution simple ...Haskell , 28 octets
Essayez-le en ligne!
Merci à Leo pour l'astuce de xor'ing les booléens avec
/=
.Haskell , 33 octets
Essayez-le en ligne!
la source
show
astuce est cool, mais vous pouvez XOR les trois éléments d'une manière plus directe avec foldl1: tio.run/…JavaScript (ES6), 31 octets
Prend l'entrée en 3 chaînes au
MM/DD
format: date , range_from , range_to . Renvoie un booléen.Cas de test
Afficher l'extrait de code
la source
MM/DD
format, vous pouvez simplement utiliser le tri des chaînes. Bonne idée.Haskell ,
3837 octetsEssayez-le en ligne!
1 octet enregistré grâce à Laikoni
la source
(d#b)e=
.Perl 6 ,
333129 octetsEssayez-le en ligne!
Prend une liste contenant le début, la date et la fin.
-2 octets grâce à Ramillies.
la source
@_[0]
peut être écrit au fur.[0]
et à[(whatever)] @_
mesure[(whatever)] $_
. Vous aurez juste besoin de l'appeler comme$f(($s,$d,$e))
.Perl 5 , 60 octets
59 octets de code + 1
-a
Essayez-le en ligne!
Contribution:
start_date end_date target_date
la source