2015-05-26 40 views
3

這是怎麼得到「前兩天」使用boost::date使用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); 

一個怎樣計算表示「上週一」的日期?

回答

3

使用previous_weekday

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

編輯:新增-days(1),以避免返回指定的參數的日期,如「上週一」可能永遠不會意味着「今天」上週一(見docs)。這也是完成「N天前」起點的較短途徑。