gpt4 book ai didi

c++ - 表示盘中时间的最佳方式是什么 HH :MM:SS in c++11

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:06:59 27 4
gpt4 key购买 nike

C++11 chrono提供概念:clock , time_point , durationHoward 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com