使用 boost::date,如何计算 "last Monday"?
Using boost::date, how do I compute "last Monday"?
这就是如何使用 boost::date
:
得到 "two days ago"
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);
如何计算代表 "last Monday" 的日期?
using namespace boost::gregorian;
auto last_monday = previous_weekday(today-days(1), greg_weekday(Monday));
编辑: 添加 -days(1)
以避免返回作为参数给出的日期,因为“上周一”可能永远不会表示周一的“今天”(请参阅docs)。这也是完成“N 天前”起点的更短方法。
这就是如何使用 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);
如何计算代表 "last Monday" 的日期?
using namespace boost::gregorian;
auto last_monday = previous_weekday(today-days(1), greg_weekday(Monday));
编辑: 添加 -days(1)
以避免返回作为参数给出的日期,因为“上周一”可能永远不会表示周一的“今天”(请参阅docs)。这也是完成“N 天前”起点的更短方法。