4 디데이기간을 일 단위로 변환하여 결과값으로 반환하는 코드를 다음과 같이 추가합니다.
➊ 디데이기간에는 디데이와 현재 시각 사이의 기간을 1/1000초 단위로 나타낸 값이 들어 있습니다. 1/1000초 단위를 1초 단위로 바꾸기 위해 1000으로 나누고, 초 단위를 시 단위로 바꾸기 위해 3600(60초×60분)으로 나눈 다음, 시 단위를 일 단위로 바꾸기 위해 24로 나눕니다. 그리고 나눈 결과를 내림하여 디데이기간에 저장합니다.
➋ 현재 시각이 디데이 이후나 디데이와 같다면 디데이기간 값은 0보다 크거나 같게 됩니다. 디데이를 지난 시점부터는 기간을 나타내는 숫자 앞에 + 기호를 붙이고 디데이기간에 1을 더해줍니다. 디데이기간에 1을 더하는 이유는 디데이 당일을 +1, 다음날을 +2로 표시하기 위해서입니다. 예를 들어, 디데이가 20일 0시고 현재 시각이 20일 12시라면 기간 값은 0일(0.5일에서 내림한 결과)이 됩니다. 디데이 당일에 표시되는 기간은 0일이 아닌 +1일이 되는 것이 자연스러우므로 디데이기간에 1을 더합니다.
➌ 계산이 완료된 디데이기간 값을 블록의 결과값 반환 소켓에 연결하면 이 값은 블록을 거쳐 블록으로 전달되어 디데이기간구하기 함수의 반환값이 됩니다.
TIP
반환값은 함수의 실행으로 만들어진 값 중 함수를 호출한 곳으로 전달되는 값입니다.