使用boost :: date,我如何计算"上周一"?

时间:2015-05-26 23:11:03

标签: c++ boost-date-time

这就是两天前"""使用boost::date

boost::gregorian::date today = boost::gregorian::day_clock::local_day();
boost::date_time::day_functor<boost::gregorian::date> day_offset(-2);
boost::gregorian::date modified = today + day_offset.get_offset(today);

如何计算代表&#34;上周一&#34;?

的日期

1 个答案:

答案 0 :(得分:3)

使用previous_weekday

using namespace boost::gregorian;
auto last_monday = previous_weekday(today-days(1), greg_weekday(Monday));

编辑已添加-days(1)以避免返回作为参数提供的日期,因为“上周一”可能永远不会在星期一表示“今天”(请参阅​​docs )。这也是完成“N天前”起点的较短方式。