Dada uma MM/DD
data ( 12/24
) e um período de início / fim ( 11/01 - 06/24
), descubra se a data está dentro do período listado.
Os períodos podem ser seqüenciais ( 05/01 - 11/01
) ou agrupados até o próximo ano ( 11/01 - 05/01
).
Exemplos:
12/24
está em11/01 - 06/24
= True06/24
está em11/01 - 06/24
= True06/24
está em06/24 - 06/24
= True06/24
está em11/01 - 06/23
= Falso07/24
está em11/01 - 06/24
= Falso07/24
está em05/01 - 11/01
= True07/24
está em07/23 - 07/20
= True
Os anos não são importantes. Presume-se que a data e / ou o período se apliquem a qualquer ano passado ou futuro.
A data final será sempre posterior à data de início. Se a data de término for numericamente menor que a data de início, presumimos que estamos concluindo o próximo ano.
As três variáveis de entrada podem ser via qualquer método (args, HTTP, stdin, etc.) e em qualquer formato (string, JSON, array, etc.)
A resposta pode ser boolean
ou qualquer forma de uma sequência sim / não / correta / etc. O menor código vence.
Você não pode simplesmente passar argumentos para uma função interna.
fonte
['MM', 'DD']
?11/01 - 06/24 includes 06/24?
['06', '24']
se estivesse certo[]
ou o que você quer dizer?2017
e no próximo ano2018
. Como é que vamos determinar que06/24
meios2018
e, portanto, deve serTrue
mais do que2017
e, assim,False
porque é antes11/01
?date > start & date < end
" - Alguns dos seus casos de teste estão errados. Eu acho que o que você quer dizer éstart<=date<=end
.Respostas:
Python , 31 bytes
Experimente online!
Toma entradas como
MM/DD
em ordemtarget, start, end
.fonte
JavaScript (ES6),
2620 bytesA saída é
0
sea
estiver dentro do intervalob
...c
,1
se não. Editar: salvou 6 bytes graças a @nwellnhof.fonte
(a,b,c)=>b>c^b>a^a>c
?b>a^a>c
, mas eu então negligenciado a correção simples ...Haskell , 28 bytes
Experimente online!
Obrigado a Leo pelo truque de xor'ing com os booleanos
/=
.Haskell , 33 bytes
Experimente online!
fonte
show
truque é legal, mas você pode XOR os três elementos de uma forma mais direta com foldl1: tio.run/...JavaScript (ES6), 31 bytes
Aceita entrada como três strings no
MM/DD
formato: data , intervalo_de , intervalo_para . Retorna um booleano.Casos de teste
Mostrar snippet de código
fonte
MM/DD
formato, você pode apenas usar a classificação de cadeias. Boa ideia.Haskell ,
3837 bytesExperimente online!
Guardado 1 byte graças a Laikoni
fonte
(d#b)e=
.Perl 6 ,
333129 bytesExperimente online!
Leva uma lista que contém início, data e fim.
-2 bytes graças a Ramillies.
fonte
@_[0]
pode ser escrito como.[0]
e[(whatever)] @_
como[(whatever)] $_
. Você só precisa chamar assim$f(($s,$d,$e))
.Perl 5 , 60 bytes
59 bytes de código + 1
-a
Experimente online!
Entrada:
start_date end_date target_date
fonte