我在 C++11 中工作,希望根据项目的发布日期计算项目的到期日期。如果超过 30 天前发布的项目,则应该已过期:
#include <ctime>
bool isExpired() {
std::chrono::system_clock::time_point tend = tstart + std::chrono::hours(30 * 24);
std::chrono::system_clock::time_point tnow = std::chrono::system_clock::now();
bool expired = tnow >= tend;
return expired;
}
但是,我似乎无法简洁地输入开始日期。其他一些问题表示有些喜欢
auto ymd = jun/9/2017; // Yields a year_month_day type
std::chrono::system_clock::time_point tstart = sys_days(ymd);
可能在 C++11 中工作,但 Xcode 肯定不喜欢它,我不确定我是否跨越了 C++14 及更高版本的功能。
在 c++11 中执行此计算的简洁方法是什么?
最佳答案
看起来您正在尝试使用 Howard Hinnant's datetime library (太棒了!)。它没有预装。从上面的链接获取它。对于您正在使用的部分,您只需要 header "date.h"
和 using namespace date;
。
使用相同的 date.h header ,如果需要,您还可以用 days{30}
代替 hours
的表达式。两者都有效。
关于c++ - 在 C++11 中检查到期日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44475868/