Datetime boost::gregorian::date.day_number()返回朱利安日期

Datetime boost::gregorian::date.day_number()返回朱利安日期,datetime,boost,Datetime,Boost,我注意到,boost::gregorian::date(1970,1,1).day_number()返回2440588,这是它的儒略日期 这是一个错误还是我遗漏了什么?以天为单位的日期之间的差异: #include <boost/date_time/gregorian/greg_date.hpp> #include <iostream> int main() { using boost::gregorian::date; date a(1712, 1,

我注意到,
boost::gregorian::date(1970,1,1).day_number()
返回
2440588
,这是它的儒略日期


这是一个错误还是我遗漏了什么?

以天为单位的日期之间的差异:

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

int main() {
    using boost::gregorian::date;
    date a(1712, 1, 1);
    date b(1713, 1, 1);

    std::cout << (b - a).days() << "\n"; // 366, includes 30th February 1712
}
auto epoch = boost::gregorian::gregorian_calendar::epoch();
std::cout << date(epoch.year, epoch.month, epoch.day) << "\n";
#包括
#包括
int main(){
使用boost::gregorian::date;
日期a(1712,1,1);
日期b(1713年1月1日);

std::cout以天为单位的日期之间的差异:

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

int main() {
    using boost::gregorian::date;
    date a(1712, 1, 1);
    date b(1713, 1, 1);

    std::cout << (b - a).days() << "\n"; // 366, includes 30th February 1712
}
auto epoch = boost::gregorian::gregorian_calendar::epoch();
std::cout << date(epoch.year, epoch.month, epoch.day) << "\n";
#包括
#包括
int main(){
使用boost::gregorian::date;
日期a(1712,1,1);
日期b(1713年1月1日);

std::cout你想做什么?到底是什么问题?我想计算两个日期在几天内的差值,我想知道boost文档(www.boost.org/doc/libs/1_62_0/doc/html/date_time/gregorian.html)中的“epoch start”是什么。你想做什么?到底是什么问题?我想计算两个日期的天数差,我想知道boost文档中的“纪元开始”是什么(www.boost.org/doc/libs/1_62_0/doc/html/date_time/gregorian.html的最底层)。我也读到了。但是
boost::gregorian::date(1400,1,1)。day_number()
2232400
,因此真正的零日在那之前仍然超过6000年。并且您不能创建日期在2001年1月14日之前。因此这并不能回答我的问题,因为
day\u number()
。你有什么想法吗?似乎你对纪元的定义是基于错误的假设(纪元不是一个硬定义的术语)。除此之外,文档的措辞可能会令人困惑。我不认为解释会比我引用的片段更具权威性。你可以在boost邮件列表上找人澄清一下吗?我也读过。但是
boost::gregorian::date(1400,1,1)。day_number()
2232400
,因此真正的零日在那之前仍然超过6000年。并且您不能创建日期在2001年1月14日之前。因此这并不能回答我的问题,因为
day\u number()
。你有什么想法吗?似乎你对epoch的定义可能基于错误的假设(epoch不是一个硬定义的术语)。除此之外,文档的措辞可能会令人困惑。我不认为解释会比我引用的片段更具权威性。你可以在boost邮件列表上找人澄清一下吗?