C++11 chrono提供概念:clock , time_point , duration在Howard Hinnant's date.h library还有其他函数可以操纵日期和时间 with motivating examples/reciepes .但是我很难表达一般的时间点,比如十点钟。 一般的盘中时间点是否应该表示
- 持续时间:今天 + 持续时间
- 创建自定义时钟选择任何给定日期的纪元,即:今天
- ????
在 C++11 中以 HH:MM:SS 格式很好地表示一般盘中时间的最佳方法是什么?
seq = [2018-01-01 09:29:00UTC, 2018-01-01 09:29:58UTC,..., 2018-01-01 09:35:00UTC, ..., 2018-01-01 16:29:00UTC, 2018-01-01 16:30:00UTC]
for time in seq
time > "09:30:00" and time < "16:00:00" do some work;
最佳答案
使用 Howard Hinnant's date/time library ,今天上午 10 点是:
#include "date/tz.h"
#include <iostream>
int
main()
{
using namespace date;
using namespace std::chrono;
auto zt = make_zoned(current_zone(), local_days{2018_y/jan/15} + 10h);
std::cout << zt << '\n';
}
这只是为我输出:
2018-01-15 10:00:00 EST
local_days
用于将年/月/日转换为精度为天
的local_time
。您可以使用任何您想要的单位向其中添加任何 chrono::duration
。然后,您可以将该 local_time
与您想要获取该 time_zone
中的本地时间的任何 time_zone
配对。
关于c++ - 表示盘中时间的最佳方式是什么 HH :MM:SS in c++11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48267136/