c++ - boost::gregorian::date 如何在内部存储日期?

标签 c++ boost gregorian-calendar boost-date-time

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/

相关文章:

c++ - 加载位图时 Allegro 崩溃

c++ - boost 预处理器 : Sample not working

java - 将公历转换为回历日期

java - 公历问题

c++ - 如何比较两个 tm(来自 ctime)变量

c++ - 如何导航文件夹来读取图像?

c++ - 这个‘type variableofType()’是函数还是对象?

c++ - 被函数指针迷惑为类中另一个函数的参数

c++ - 对 std::runtime_error 的 what() 函数的误解

c++ - 当我知道我插入的指针时,如何从 boost::ptr_set 中删除?