Boost 文档说明如下:“内部 boost::gregorian::date 存储为 32 位整数类型。” .我从链接中找到了这个:http://www.boost.org/doc/libs/1_56_0/doc/html/date_time/gregorian.html .
这个 32 位整数是如何计算的?它是自纪元以来的天数(就像 Joda 在 Java 中所做的那样)吗?
最佳答案
来自documentation , 当前实现支持 1400-Jan-01 到 9999-Dec-31 范围内的日期
分析代码,类 boost::gregorian::date 将日期存储为一个名为 days_ 的 uint32_t 整数。对于 1400-Jan-01,此整数的值为 2232400。日期增加一天意味着此整数增加一个单位。因此,两个日期之间的天数差可以通过减去它们的整数来计算。
关于c++ - boost::gregorian::date 如何在内部存储日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38001253/