ISO 8601은 duration format을 P[n]Y[n]M[n]DT[n]H[n]M[n]S
으로 선언합니다. 예를 들어, P3Y0.5MT6M
은 "3 년 반 월 3 분"을 의미합니다.ISO 8601을 나타냅니다. 현재 날짜에 따라 C++/부스트 길이가 달라집니다.
unixtime/chrono :: duration/whatever로 변환 할 수있는 variousways이 있지만 모든 솔루션에서 평균 월 및 연도를 초 단위로 사용합니다. 표준에 따라 올바르지 않습니다. 대신 01 Feb + P1M
이 01 Mar
(+28 일)이어야하며 01 Mar + P1M
은 01 Apr
(+31 일)이어야하는 등 날짜에 따라 달라야합니다.
어떤 방법으로 구현할 수 있습니까? 이 모든 윤년과 다른 불쾌한 일들을 다루는 수동 구현보다 더 훌륭한 선택이 있습니까?