【发布时间】:2017-06-10 16:59:52
【问题描述】:
我正在使用 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 中执行此计算的简洁方法是什么?
【问题讨论】:
-
“我似乎无法简洁地输入开始日期”是什么意思?
std::chrono::system_clock::now()怎么了? -
可能只是我,但看起来你在第二段代码中的陈述有点不合逻辑......你的 isExpired 函数中应该包含什么“tstart”?您在没有任何可见声明的情况下使用它...
-
@Rakete1111 我想将
tstart设置为等于June 9, 2017