【FileMaker】경과 연월일을 요구한다

2817 단어 FileMaker
어느 언어라도 그렇습니다만, 일자 ​​계산은 머리를 사용하는 것이 많아, 1회 공통으로 스크립트를 쓰면, 다시 그 스크립트의 내용을 기억할 수 없거나 합니다.
또한 연습 문제로 날짜 계산을 많이 했다는 분도 계실지도 모르겠네요.

그리고, 이번에도 「생후」를 구하는 계산을 실장했으므로, 기억으로 기사로 해 둡니다.

요점은 시작과 끝의 "월"과 "일"에 주목한다는 것입니다.
개시 연월일의 월일보다 종료 연월일의 월일이 후의 달(예: 개시월 8월, 종료월 9월)이었던 경우나, 개시일이 종료일보다 후의 날(예 : 시작일 10일, 종료일 1일)을 스크립트에 중점적으로 통합하는 것입니다.

샘플



몇 가지 경과 연월일 샘플은 아래에 나와 있습니다.
※from 일자:시작 연월일, to 일자:종료 연월일입니다.


월 조건
일조건
결과


from 월 > to월
from일 > to일


from 월 > to월
from 일 < to 일


from 월 < to 월
from 일 < to 일


from 월 < to 월
from일 > to일


from 월 = to 월
from 일 < to 일



이번 샘플에서는 from 날짜 당일은 포함하지 않습니다.
만약 from 당일도 포함하는 경우(9/10~9/11을 2일간으로 계산하는 경우)는 이 경과 연월일의 날짜에 1일 추가하면 됩니다.
또, from 일자와 to 일자가 반대에 들어갔을 경우등의 체크는, 필드의 체크나 스크립트등으로 넣으면, 한층 더 확실하게 됩니다.

계산식



수식은 다음과 같습니다.


(1) 연수, 월수, 일수를 구할 준비
월수와 일수의 경우 앞에서 설명한 대로 from이 값이 클 경우 의도적으로 -1(전월)을 하여 각각의 계산으로 월수를 조정합니다.

(2) from에서 to까지의 월수를 구해, 연수와 월수를 구한다
월수를 구할 때는, (1)로 낸 조정분을 가미합니다.

(3) 연월보다 많았던 분의 일수를 요구한다
to날짜에서 from날짜를 뺍니다만, 그대로 당기면 연월도 포함한 일수가 되어 버리므로, 당기는 측을 to날짜의 연월에 맞추어(일은, from날짜인 채) 감산을 해 합니다.
이 때도, (1)에서 구한 날의 조정분을 가미해, from 일자의 달 > to 일자의 달이라고 하는 경우에는 전월로부터의 일수로 해 계산을 합니다.

구현 위치



이번에는 테이블의 '경과 연월일'이라는 계산 필드에 구현했습니다.
공통 부품으로 잘라내는 경우는, 커스텀 함수로 하면 편리합니다.

요약



경과 연월일은, 그 밖에도 계산 방법이 있다고 생각합니다만, 이번의 계산 방법은, 비교적 종이와 펜으로 계산하는 방법에 가까운 것이 되고 있습니다.
한 가지 방법으로 다른 방법도 찾아 구현하고, 어느 것이 효율적인지, 어느 것이 유지 보수가 편한지 등을 판별하여 프로덕션에 가져가주세요.

좋은 웹페이지 즐겨찾기