시간 값은 업무가 요구하는 시점·길이·날짜·반복의 의미를 구분해 모델링한다

같은 숫자나 문자열로 저장할 수 있어도 특정 순간·경과 시간·달력 날짜·구간·반복 규칙은 필요한 연산과 계약이 다르다. 저장 형식보다 업무가 요구하는 의미를 먼저 구분해 모델에 보존한다.

같은 하루라도 연산이 다를 때

경과 시간에 정확히 24시간을 더하는 것과 지역 달력의 다음 날 같은 시각을 구하는 것은 일광 절약 시간 변경 구간에서 달라질 수 있다. 구간의 경계 포함 여부와 반복의 기준 시간대도 값의 해석에 관여한다. 모든 의미를 UTC나 고정 초 단위 하나로 환원하는 규칙으로 만들지 않는다.

타입 이름을 나눴다는 사실만으로 생성·변환·연산이 계약을 지키는 것은 아니다. 정밀도·범위·지역 규칙·경계 조건은 실제 구현에서 확인한다. Kciter의 예제 코드를 그대로 검증된 시간 라이브러리로 취급하지 않는다.

근거와 연결