C ++ 11 chrono提供了概念:clock,time_point,duration和Howard Hinnant's date.h library中还有其他函数来操纵日期和时间{{ 3}}。但是我很难表达一般的时间点,比如十点钟。 应该表达一般的日内时间点
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;
答案 0 :(得分:1)
使用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
,精度为days
。您可以使用您想要的任何单位向其添加任何chrono::duration
。然后,您可以将local_time
与您希望获得time_zone
当地时间的任何time_zone
配对。