4차 가상 영업일

주간 도전 178



Challenge , My solutions

작업 1: 4차 가상 기지





주어진 숫자(밑 10)를 quater-imaginary base number으로 또는 그 반대로 변환하는 스크립트를 작성하십시오.

내 솔루션



이 작업을 위해 저는 챌린지의 전반부만 수행하기로 했습니다. 즉, 10진법 숫자를 취하여 -4진법 숫자로 변환하는 것입니다. 일반적인 원칙은 숫자를 가져와서 -4로 나누는 것입니다. 여기서 나머지는 솔루션을 구성합니다. 나눗셈 결과가 음수일 때 몇 가지 문제가 있었지만 해결되었다고 생각합니다.




$ ./ch-1.py 4
10300

$ ./ch-1.py 15
10103


작업 2: 영업일




$timestamp (날짜와 시간) 및 $duration가 시간 단위로 제공됩니다.
$duration 이후 $timestamp 업무 시간 이후에 발생하는 시간을 찾는 스크립트를 작성하십시오. 이 작업을 위해 작업 시간은 월요일부터 금요일까지 오전 9시부터 오후 6시까지라고 가정합니다. 시간대도 무시하십시오.

내 솔루션



시간 계산은 결코 쉬운 일이 아닙니다. 적어도 시간대에 대해 걱정할 필요는 없지만 대부분의(모든?) 국가가 업무 시간 외에 시계를 변경하기 때문에 실제로 문제가 되지는 않습니다. 예외는 2011년 12월 30일 금요일에 skipped a whole day 사모아(나중에 토켈라우)가 될 것입니다.

이 작업을 처리하는 방법에는 몇 가지가 있으며 가장 큰 과제는 주말을 포함하는 범위를 처리하는 것입니다. 내 솔루션이 너무 복잡했을 수 있습니다. 다른 Team PWC 구성원이 어떻게 생각하는지 봅시다.

strptime으로 시간 입력을 변환하는 것으로 시작합니다. Python의 경우 이것은 datetime 모듈의 일부이고 Perl의 경우 DateTime 모듈입니다. 또한 제공된 시간을 분으로 변환합니다. 또한 시작 시간이 평일 오전 9시에서 오후 6시 사이인지 확인합니다.

다음으로 시계를 월요일 오전 9시로 되돌립니다. minutes 변수(일 x 540, 오전 9시 이후 시간 x 60 및 분)에 다시 시계를 감은 작업 시간(분)을 추가합니다. 이제 월요일 오전 9시 이후 몇 분을 추가해야 하는지 알 수 있습니다. 나는 이것을 daysminutes 로 나누었습니다.

5일마다 주말에 2일을 추가해야 합니다. 마지막으로 월요일 오전 9시를 기준으로 날짜 계산을 사용하고 종료 시간을 찾기 위해 필요한 일수와 분을 더합니다.




$ ./ch-2.py "2022-08-01 10:30" 4
2022-08-01 14:30

$ ./ch-2.py "2022-08-01 17:00" 3.5
2022-08-02 11:30

좋은 웹페이지 즐겨찾기