【发布时间】:2017-11-22 07:43:31
【问题描述】:
ISO 8601 将duration format 声明为P[n]Y[n]M[n]DT[n]H[n]M[n]S。例如,P3Y0.5MT6M 表示“3 年半月 3 分钟”。
有 various ways 将其转换为 unixtime/chrono::duration/whatever,但我发现的所有解决方案都使用以秒为单位的平均月份和年份持续时间,根据标准这是不正确的。相反,它应该取决于日期,例如 01 Feb + P1M 应该是 01 Mar(+28 天),而 01 Mar + P1M 应该是 01 Apr(+31 天)。
我可以通过哪种方式实现这一点?在处理所有这些闰年和其他令人讨厌的事情时,我有什么比手动实施更好的选择吗?
【问题讨论】:
-
只是一个简短的说明。小数只允许在指定的最后一个单位上使用。