我正在尝试计算两个 boost::gregorian 日期之间的时间。目前我只是取两个日期的差异,给我一个 date_duration 来使用:
boost::gregorian::date rhs(2000, 1, 1);
boost::gregorian::date lhs(2005, 6, 15);
boost::gregorian::date_duration dd = lhs - rhs;
boost::gregorian::days daysOld(dd);
boost::gregorian::months monthsOld(...) // This is where I'm stumped
boost::gregorian::years yearsOld(...)
boost::gregorian::days ctor 可以采用 date_duration,但我找不到从 date_duration 创建类似表示的方法,用于数月和数年。从我的阅读和看到的情况来看, date_duration 似乎只包含两个日期之间的间隔天数。我所希望的是它会给我非标准化的成员数年、数月和数天。例如,对于上述日期,我希望 date_duration 具有给出类似years = 5
,的字段months = 65
,days = 1992
其中每个字段表示使用该特定时间粒度的总时间量。就目前而言,似乎只有一种方法可以访问 date_duration 作为日期之间的天数(通过调用dd.days()
)。我错过了什么吗?有没有办法使用 boost::gregorian 或其他日期/时间库之一来实现这一点?
谢谢