1

Boost 文档说明如下:“内部 boost::gregorian::date 存储为 32 位整数类型。” . 我从链接中找到了这个:http: //www.boost.org/doc/libs/1_56_0/doc/html/date_time/gregorian.html

这个 32 位整数是如何计算的?它是自纪元以来的天数(就像 Joda 在 Java 中所做的那样)?

4

1 回答 1

1

文档中,当前实现支持 1400-Jan-01 到 9999-Dec-31 范围内的日期

分析代码,boost::gregorian::date 类将日期存储为一个名为 days_ 的 uint32_t 整数。对于 1400-Jan-01,此整数的此值为 2232400。日期递增一天表示此整数递增一个单位。因此,只需减去它们的整数,就可以计算出两个日期之间的天数差。

于 2016-09-27T21:40:22.767 回答