매주 화요일과 목요일마다 집에서 일하는 동료가 있습니다. 오전 8 시경 그는 다음과 같은 내용의 메시지를 우리에게 보냅니다.
안녕하세요 오늘 집에서 일 해요
그가 집에 머무르는 매일 이렇게하는 부담에서 그를 구호하기 위해, 우리는 그를 위해이 일을 자동화하고 싶습니다.
도전
가능한 한 적은 바이트로 다음과 같은 코드를 작성하십시오.
- 현재 시간 수신 : 코드에서 현재 연도, 월 (1-12), 월 (1-31), 시간 (0-23) 및 분 (0-59) 및 요일에 대한 값을 수신 할 수 있습니다. (이 숫자는 0에서 시작하는지, 1에서 시작하는지, 0/1이 일요일, 월요일 또는 다른 요일을 선택할 경우)을 선택할 수 있습니다. 또는 당신은 같은 구조를 수신 할 수있다
Date
,DateTime
,Calendar
또는 기타 시간 관련 구조, 언어가 허용하는 경우.yyyyMMddHHmm
원하는 경우 날짜가 포함 된 문자열을 받거나 날짜와 시간에 대해 두 개의 개별 문자열을받은 다음 요일이있는 정수를받을 수도 있습니다. 부담없이 - 메시지를 작업 채팅으로 보내야하는지 여부를 나타내는 두 개의 일관된 진실 및 거짓 값을 리턴 합니다.
규칙
- 이 코드는 주기적으로 호출되는 것으로 가정합니다. 그럼에도 불구하고 정확한 주기성은 관계가 없습니다.
- 요일이 화요일이나 목요일이고 시간이 오전 8시이면 오류 마진이 10 분 (7시 50 분에서 8시 10 분까지)으로 true 값을 반환해야합니다.
- 지정된 날짜에 해당 시간 사이에 코드를 처음 호출 한 경우에만 정확한 값을 보내야합니다. 우리는 봇이 같은 메시지를 여러 번 연속해서 보내지 않기를 원합니다. 이 제한을 관리하는 방법은 전적으로 귀하에게 달려 있습니다.
- 코드는 독립적으로 반복적으로 실행되는 프로그램이거나 항상 실행되는 더 큰 코드의 일부일 수 있습니다. 당신의 선택.
- 코드 실행간에 재부팅이 없다고 가정 할 수 있습니다.
- 날짜가 항상 정확하다고 가정 할 수 있습니다.
- 코드와 지속성을 달성하는 데 사용되는 방법에 대한 설명이 권장됩니다.
예
(Week starts on Monday: 1, the following invokations will be made in succession)
2018,08,27,08,00,1 = falsey (not Tuesday or Thursday)
2018,08,28,07,45,2 = falsey (out of hours)
2018,08,28,07,55,2 = truthy (first time invoked this day at the proper hours)
2018,08,28,08,05,2 = falsey (second time invoked this day at the proper hours)
2018,08,28,08,15,2 = falsey (out of hours)
2018,08,29,08,00,3 = falsey (not Tuesday or Thursday)
2018,08,29,18,00,3 = falsey (not Tuesday or Thursday)
2018,08,30,07,49,4 = falsey (out of hours)
2018,08,30,07,50,4 = truthy (first time invoked this day at the proper hours)
2018,08,30,07,50,4 = falsey (second time invoked this day at the proper hours)
2018,08,30,08,10,4 = falsey (third time invoked this day at the proper hours)
2018,08,30,08,11,4 = falsey (out of hours)
2018,09,04,08,10,2 = truthy (first time invoked this day at the proper hours)
이것은 code-golf 이므로 각 언어마다 가장 짧은 코드가 이길 수 있습니다!
YYYYmmdd
와 시간을 단일 매개 변수로 사용할 수 있습니까 HHss
?