- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用户提供的持续时间
const int period_seconds = cfg.period_seconds;
我想floor
一个time_point
到那个duration
的粒度。
我看到 time_point
有一个 std::chrono::floor
函数和 duration
,但如何使用它们来完成我正在寻找的事情并不是很明显。
我有以下有效的玩具示例:
const auto seconds = std::chrono::seconds{period_seconds};
const auto period = std::chrono::duration_cast<std::chrono::nanoseconds>(seconds);
const auto now = std::chrono::system_clock::now();
const auto floored = now - (now.time_since_epoch() % period);
上述代码的净效果,对于 10 秒的持续时间如下:
now: 2022-04-19 15:06:26.781772408
floored: 2022-04-19 15:06:20.000000000 # so "floors" the 25.78 seconds to 20 seconds
我忍不住觉得根据 time_since_epoch
和模数运算符来工作并不是获得我正在寻找的结果的“正确”方式...
是否有“更好”/推荐的方法将 time_point 设置为某个用户提供的持续时间?
最佳答案
我觉得你的解决方案非常好。然而,它可以稍微简化。无需形成纳秒级精度 period
。可以直接用seconds
操作:
const auto floored = now - (now.time_since_epoch() % seconds);
关于c++ - 将 time_point 降低到给定持续时间的推荐方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71927290/
boost::chrono::steady_clock::time_point 之间有什么区别?和 boost::chrono::time_point ,为什么不能相互转换? 这似乎非常多余。 最佳答
有没有什么优雅的方法可以将 boost chrono time_point 转换为标准库中的等价物? 最佳答案 恐怕你不能保证转换,除非你先验地接受 boost::chrono::steady_clo
我有一个变量存储为 long 来自 std::chrono::system_clock::time_point.time_since_epoch().count() 的值。我现在想从 long 变量中
如何将计时持续时间转换为时间点,该时间点晚于具有给定持续时间的时钟纪元?我试图在计时时钟中找到纪元时间,但没有成功。 最佳答案 来自 20.12.6 [time.point] 的概要: templat
我有一个用户提供的持续时间 const int period_seconds = cfg.period_seconds; 我想floor一个time_point到那个duration的粒度。 我看到
我有一个用户提供的持续时间 const int period_seconds = cfg.period_seconds; 我想floor一个time_point到那个duration的粒度。 我看到
给定两个分割值,自纪元以来的秒数和 µs,以下哪个更可取? auto timestamp = system_clock::time_point(seconds(time_seconds) + micr
我将 time_point 设置为下一个完整的五分钟,这很容易: template using minutes = std::chrono::duration, std::chrono::m
简单的问题,如何使用尽可能少的代码将 std::chrono::time_point 正确转换为 std::string? 注意:我不想将 cout 与 put_time() 一起使用。接受 C++1
我正在开发一个类 Timer它的一些成员属于 high_resolution_clock::time_point 类型其中 time_point定义为 typedef chrono::time_poi
我发现了以下问题。我有一个带时间的字符串(从我使用反向操作输出的文件中获取)。但是,当将其转换为 time_point 并将其输出到终端时,我发现相差一小时。我一直无法找出原因。有什么想法吗? #in
我不明白为什么这段代码会被 g++ 4.7.2 卡住: #include main () { std::chrono::system_clock::time_point t1, t2 ;
如果我有一个 std::chrono::steady_clock::time_point t1 = std::chrono::steady_clock::now(); 变量,我如何定义另一个 time
我正在转换 std::chrono::time_point使用 的时间戳 std::chrono::duration_cast( getTimestamp().time_since_epoch()
如何仅更改现有 std::chrono::system_clock::time_point 的小时? 例如,假设我想实现这个功能: void set_hour(std::chrono::system_
如何仅更改现有 std::chrono::system_clock::time_point 的小时? 例如,假设我想实现这个功能: void set_hour(std::chrono::system_
如何从 std::chrono::system_clock::time_point 设置平台(windows、linux、android)的系统时间。 最佳答案 您不能使用 std::chrono 工
我在 12 天前发布了关于将 std::chrono::time_point 转换为字符串的问题并解决了问题。我想对你说声谢谢。 我使用以下代码解决了我的问题: char no[15]; string
我需要在 C++ 中获取当前日期和时间。我可以使用 chrono 来获取 系统时间 但我还需要将其作为字符串保存在 json 文件中。此外,我尝试过的计时时间格式如下: auto time = std
我对这些库还是很陌生,我可以在 std::chrono 上找到的文档对我不起作用。 我正在尝试实现一个包含时间戳的对象容器。这些对象都将按从最近到最不最近的顺序存储,我决定尝试使用 std::chro
我是一名优秀的程序员,十分优秀!