在 boost::date_time 中是否有任何可用的 API 来获取两个日期之间的天数,这也是特定于日历的?
例如,2005/01/01 和 2006/12/31 之间的天数在七天日历中为 730,在五天日历中为 504。
最佳答案
是的:posix_time 来拯救
#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 的立方,由于这些性质,一个完美的 totient 数,一个居中的八角形数, 和一个 Smith 数。它不是四个连续素数的和
关于c++ - 如何使用 boost::date_time 获取两个日期之间的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30382628/