Учитывая MM/DD
дату ( 12/24
) и диапазон дат начала / окончания ( 11/01 - 06/24
), выясните, находится ли дата в указанном интервале дат.
Диапазоны дат могут быть последовательными ( 05/01 - 11/01
) или переходить на следующий год ( 11/01 - 05/01
).
Примеры:
12/24
находится в11/01 - 06/24
= True06/24
находится в11/01 - 06/24
= True06/24
находится в06/24 - 06/24
= True06/24
в11/01 - 06/23
= False07/24
в11/01 - 06/24
= False07/24
находится в05/01 - 11/01
= True07/24
находится в07/23 - 07/20
= True
Годы не имеют значения. Предполагается, что дата и / или диапазон дат применяются к любому прошлому или будущему году.
Дата окончания всегда будет после даты начала. Если дата окончания численно меньше, чем дата начала, мы предполагаем, что мы приближаемся к следующему году.
Три входные переменные могут быть через любой метод (args, HTTP, stdin и т. Д.) И в любом формате (строка, JSON, массив и т. Д.)
Ответом может быть boolean
или любая форма строки да / нет / правильно / и т.д .. Самый короткий код выигрывает.
Вы не можете просто передать аргументы во встроенную функцию.
источник
['MM', 'DD']
?11/01 - 06/24 includes 06/24?
['06', '24']
что правильно,[]
или что ты имеешь в виду?2017
и следующем году2018
. Как мы должны определить, что06/24
означает2018
и, таким образом, должно быть,True
а не2017
и, следовательно,False
потому что это раньше11/01
?date > start & date < end
» - Тогда некоторые из ваших тестов являются ошибочными. Я думаю, что вы имеете в видуstart<=date<=end
.Ответы:
Python , 31 байт
Попробуйте онлайн!
Принимает входные данные
MM/DD
в порядкеtarget, start, end
.источник
JavaScript (ES6),
2620 байтВывод,
0
еслиa
лежит в пределах диапазонаb
...c
,1
если нет. Изменить: Сохранено 6 байтов благодаря @nwellnhof.источник
(a,b,c)=>b>c^b>a^a>c
?b>a^a>c
, но я тогда упустил простое исправление ...Haskell , 28 байт
Попробуйте онлайн!
Спасибо Лео за трюк с использованием логических выражений
/=
.Haskell , 33 байта
Попробуйте онлайн!
источник
show
трюк классный, но вы можете XOR три элемента более прямым способом с foldl1: tio.run/…JavaScript (ES6), 31 байт
Принимает ввод в виде 3 строк в
MM/DD
формате: date , range_from , range_to . Возвращает логическое значение.Контрольные примеры
Показать фрагмент кода
источник
MM/DD
формату вы можете просто использовать сортировку строк. Хорошая идея.Haskell ,
3837 байтПопробуйте онлайн!
Сохранено 1 байт благодаря Laikoni
источник
(d#b)e=
.Perl 6 ,
333129 байтПопробуйте онлайн!
Принимает список, содержащий начало, дату и конец.
-2 байта благодаря Ramillies.
источник
@_[0]
можно написать как.[0]
и[(whatever)] @_
как[(whatever)] $_
. Вам просто нужно будет назвать это как$f(($s,$d,$e))
.Perl 5 , 60 байт
59 байт кода + 1
-a
Попробуйте онлайн!
Входные данные:
start_date end_date target_date
источник