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

use*_*865 4 c++ datetime boost

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

例如,2005/01/01 和 2006/12/31 之间的天数在 7 天日历中为 730,在 5 天日历中为 504。

seh*_*ehe 6

是的:posix_time 来救援

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";
}
Run Code Online (Sandbox Code Playgroud)

印刷

第729章【1】

使用posix_time::ptime,如果你想用一天的阳历日子+时间(HH:MM:ss.fffffff)。local_time::local_date_time为此添加时区意识(例如,正确使用夏令时)


琐事 顺便说一句,这个数也是 27 的平方和 9 的立方,由于这些性质,它是一个完美的整数,一个居中的八角形数和一个史密斯数。它不是四个连续的素数之和