2017-02-19 39 views
0

我一直在寻找一种方法来计算使用当地时间的C++将来的日历日期,但到目前为止没有骰子。如何调用本地时间和本地时间加上使用std :: chrono的X小时

基本上我要添加3天(对于标准放送)OR添加一天(过夜递送)到当前时间(在MM-DD-YYYY格式和由所述计算机检索打印)。我如何在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 
+0

看看'std :: chrono'中的设施。 –

+2

欢迎来到堆栈溢出。请花些时间阅读[The Tour](http://stackoverflow.com/tour),并参阅[帮助中心](http://stackoverflow.com/help/asking)中的资料,了解您可以在这里问。 –

+0

[算法来添加或减少日期的日期?]的可能重复(http://stackoverflow.com/questions/2344330/algorithm-to-add-or-subtract-days-from-a-date)。它是一个C++问题,它为您提供了策略。它还提供了算法的链接。 – jww

回答

2

这里是如何做到这一点,在不到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'; 
相关问题