【问题标题】:How to invoke local time and local time plus X hours using std::chrono [closed]如何使用 std::chrono 调用本地时间和本地时间加上 X 小时 [关闭]
【发布时间】:2017-07-08 12:11:45
【问题描述】:

我一直在寻找一种使用本地时间在 C++ 中计算未来日历日期的方法,但到目前为止还没有骰子。

基本上我想在当前时间(以 MM-DD-YYYY 格式打印并由计算机检索)添加 3 天(对于标准交付)或添加 1 天(对于隔夜交付)。我如何在 C++ 中简单地 [不需要算法] 做到这一点?

输出如下所示:

Would you like overnight delivery [Y/N]? Y

Today's Date: 03-25-2017
Your Expected Arrival Date: 03-26-2017

Would you like overnight delivery [N/Y]? N

Today's Date: 03-25-2017
Your Expected Arrival Date: 03-28-2017

【问题讨论】:

  • 看看std::chrono的设施。
  • 欢迎来到 Stack Overflow。请花时间阅读The Tour 并参考Help Center 中的材料,您可以在这里问什么以及如何问。
  • Algorithm to add or subtract days from a date? 的可能重复项。它是一个 C++ 问题,它为您提供了策略。它还提供了算法的链接。
  • 这些答案不会从计算机中检索当前日期,然后给出该日期 + 1 或 3 天。他们只是给你一个通用算法来计算两个日期之间的距离,你需要告诉计算机它是什么日期。我需要电脑给我当地时间。然后计算一个未来的日期。
  • @polymorphism:您还没有阅读 πάντα ῥεῖ 所写的内容。 std::chrono 包含你需要的一切。

标签: c++ datetime


【解决方案1】:

下面是用不到 8 行代码的方法。使用小时数来指定未来您想去的确切时间。格式像 C 一样非常粗糙且没有吸引力。不要忘记指定每个“现在”...加急与常规运输不同!

chrono::system_clock::time_point now = chrono::system_clock::now();
time_t now_c = chrono::system_clock::to_time_t(now + chrono::hours(24));
cout << "Overnight Shipping Expected Arrival Date: " << put_time(localtime(&now_c), "%F") << '\n';

chrono::system_clock::time_point now2 = chrono::system_clock::now();
time_t now2_c = chrono::system_clock::to_time_t(now2 + chrono::hours(72));
cout << "Standard Shipping Expected Arrival Date: " << put_time(localtime(&now2_c), "%F") << '\n';

【讨论】:

    猜你喜欢
    • 2016-07-11
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 2012-01-29
    相关资源
    最近更新 更多