在boost :: date_time中是否有可用的API来获取两个日期之间的天数,这也是日历特定的?
示例,2005年1月1日和2006/12/31之间的天数在7天日历中为730天,在5天日历中为504天。
答案 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::ptime
。 local_time::local_date_time
为此增加了时区意识(关于夏令时的正确性)。
琐事 顺便提一下,这个数字也是27的正方形,9的立方体,以及这些属性的结果,一个完整的数字,一个居中的八边形数字和史密斯号码。它是不四个连续素数的总和