c++ - 在 C++11 中检查到期日期

标签 c++ c++11 time

我在 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/

相关文章:

c++ - 在 C++ 代码中,如何让用户在 2 个文本字符串之间输入一个数字

c++ - 是否返回语句复制值

c++ - 创建与推导参数具有相同类型的局部变量的最简单方法是什么?

c++ - 使用 std::enable_if 有什么问题?

javascript - 为什么我的 If-Else 语句默认为 "else"?

c++ - 如何在 Qt、GCD 风格的给定线程中执行仿函数或 lambda?

c++ - reinterpret_cast 与 static_cast 用于在标准布局类型中写入字节?

php - 显示特定时间范围内的数据库实体

java - Android 游戏时间处理

c++ - volatile 和 const 的成员函数