C++ 使用boost::date,我如何计算;上星期一;?

C++ 使用boost::date,我如何计算;上星期一;?,c++,boost-date-time,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);

这就是使用
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);
boost::gregorian::date today=boost::gregorian::day_clock::local_day();
boost::date\u time::day\u函子day\u偏移量(-2);
boost::gregorian::date modified=今天+日偏移量。获取日偏移量(今天);
如何计算表示“上周一”的日期?

使用:

编辑:添加了
-days(1)
,以避免返回作为参数给出的日期,因为“上周一”可能永远不会表示周一的“今天”(请参阅)。这也是实现“N天前”起点的较短方法

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