범위 내의 날짜?


9

MM/DD날짜 ( 12/24) 및 시작 / 종료 날짜 범위 ( 11/01 - 06/24)가 주어지면 날짜가 나열된 날짜 범위 내에 있는지 확인하십시오.

날짜 범위는 순차적 05/01 - 11/01이거나 ( ) 내년으로 둘러 쌀 수 있습니다 ( 11/01 - 05/01).

예 :

  • 12/2411/01 - 06/24= TRUE
  • 06/2411/01 - 06/24= TRUE
  • 06/2406/24 - 06/24= TRUE
  • 06/24~에 11/01 - 06/23거짓 임
  • 07/24~에 11/01 - 06/24거짓 임
  • 07/2405/01 - 11/01= TRUE
  • 07/2407/23 - 07/20= TRUE

년은 교전하지 않습니다. 날짜 및 / 또는 날짜 범위는 과거 또는 미래에 적용되는 것으로 가정합니다.

종료일은 항상 시작일 이후입니다. 종료 날짜가 시작 날짜보다 숫자보다 작 으면 다음 해로 줄 바꿈한다고 가정합니다.

세 가지 입력 변수는 모든 메소드 (args, HTTP, stdin 등)를 통해 모든 형식 (문자열, JSON, 배열 등)을 사용할 수 있습니다.

응답은 booleanyes / no / correct / etc .. 문자열의 형식 일 수 있습니다 . 가장 짧은 코드가 승리합니다.

내장 함수에 인수를 전달할 수는 없습니다.


대신 문자열 배열로 결과를 가져올 수 있습니까? 즉 ['MM', 'DD']?
Mr. Xcoder

테스트 사례 제안 :11/01 - 06/24 includes 06/24?
Mr. Xcoder

@ Mr.Xcoder ['06', '24']만약 당신이 옳고 그름이 []무엇인지 또는 무슨 의미인지 상상하고 있습니까?
Xeoncross

1
두 번째 테스트 사례의 경우 올해 2017와 내년에 이야기한다고 가정 해보십시오 2018. 우리는 어떻게 그 결정 해야하는 06/24방법을 2018따라서해야 True보다는 2017때문에 False그 이전이기 때문에 11/01?
AdmBorkBork

1
" date > start & date < end"-일부 테스트 사례가 잘못되었습니다. 나는 당신이 무슨 뜻인지 생각합니다 start<=date<=end.
얽히고 설킨

답변:



4

자바 스크립트 (ES6), 26 20 바이트

(a,b,c)=>b>c^b>a^a>c

출력 인 0경우 a범위 내에서 거짓말 b... c, 1그렇지 않은 경우. 편집 : @nwellnhof 덕분에 6 바이트를 절약했습니다.


1
무엇에 대해 (a,b,c)=>b>c^b>a^a>c?
nwellnhof

@nwellnhof 나는 내가 그것을 놓쳤다는 것을 믿을 수 없다 – 나의 첫번째 시도는이었다 b>a^a>c, 그러나 나는 간단한 수정을 간과했다 ...
Neil

바이트 수를 업데이트해야합니다.
nwellnhof

@nwellnhof 죄송합니다. 아직 충격을 받고있었습니다!
Neil

4

하스켈 , 28 바이트

(a%d)e=((e<a)/=(a<d))==(e<d)

온라인으로 사용해보십시오!

와 함께 부울 xor'ing 트릭을위한 Leo에게 감사합니다 /=.


하스켈 , 33 바이트

(a%d)e=show[e>=d,d>a,a>e]!!16>'a'

온라인으로 사용해보십시오!


귀하의 show트릭은 멋지다,하지만 당신은 foldl1과 더 직접적인 방법으로 세 가지 요소를 XOR 수 있습니다 tio.run/...
레오

1
@ 레오 좋은 생각, 그것은 더 짧아 확장합니다.
xnor

2

자바 스크립트 (ES6), 31 바이트

date , range_from , range_toMM/DD 형식 으로 3 개의 문자열로 입력을 받습니다 . 부울을 반환합니다.

(a,b,c)=>!(b<c?a<b|a>c:a<b&a>c)

테스트 사례


MM/DD형식 덕분에 문자열 정렬 만 사용할 수 있습니다. 좋은 생각.
Xeoncross


1

펄 6 , 33 31 29 바이트

{.[0]>.[2]??![>] $_!![<=] $_}

온라인으로 사용해보십시오!

시작, 날짜 및 종료가 포함 된 목록을 가져옵니다.

Ramillies 덕분에 -2 바이트


그리고 여기서 1 개의 list 인수를 사용하여 2 바이트를 절약 할 수 있습니다. 다음 @_[0]과 같이 쓸 수있다 .[0][(whatever)] @_같은 [(whatever)] $_. 당신은 그것을처럼 호출해야합니다 $f(($s,$d,$e)).
Ramillies

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.