我的boost::posix_time::ptime
指向March 31st 2010
,如下所示:
ptime p(date(2010, Mar, 31));
我想从这个日期减去一个月(可能还有几年)。从文档中我看到了这两个运算符:ptime operator-(time_duration)
和ptime operator-(days)
但它们都不能用数月/年。如果我尝试做:
time_duration duration = hours(24 * 30);
ptime pp = p - duration;
我要三月一日,如果我正在尝试:
ptime pp = p - days(30);
我还要到3月1日,而我想要2月28日 我怎样才能达到理想的效果? (我希望在从3月28日,29日,30日减去一个月时也能获得理想的结果)
答案 0 :(得分:4)
boost :: posix_time :: ptime :: date()运算符返回日期对象。您可以为此对象调用greg_year,greg_month等。
答案 1 :(得分:0)
嗯,我猜你已经知道并非所有月份都有30天所以你不能在30天内减去。
你应该通过“减去一个月”来问自己你的意思。