如何使用boost :: date_time获取两个日期之间的天数

时间:2015-05-21 19:24:13

标签: c++ datetime boost

在boost :: date_time中是否有可用的API来获取两个日期之间的天数,这也是日历特定的?

示例,2005年1月1日和2006/12/31之间的天数在7天日历中为730天,在5天日历中为504天。

1 个答案:

答案 0 :(得分:4)

Yup:posix_time to rescue

<强> Live On Coliru

#include <boost/date_time/gregorian/greg_date.hpp>
#include <iostream>

int main() {
    using boost::gregorian::date;

    date a { 2005, 1, 1 }, b { 2006, 12, 31 };

    std::cout << (b-a).days() << "\n";
}

打印

  

729 [1]

如果您想使用格里高利日期+时间(hh:mm:ss.fffffff),请使用posix_time::ptimelocal_time::local_date_time为此增加了时区意识(关于夏令时的正确性)。

琐事 顺便提一下,这个数字也是27的正方形,9的立方体,以及这些属性的结果,一个完整的数字,一个居中的八边形数字和史密斯号码。它是四个连续素数的总和