gpt4 book ai didi

c++ - time_t 四舍五入到分钟

转载 作者:行者123 更新时间:2023-11-28 01:39:33 26 4
gpt4 key购买 nike

我正在使用处理 time_t 的 API。现在我也有一个来自 API 的结果,它也在 time_t 中检索数据,但问题是第一个只需要日期、小时和分钟,但我检索的数据包括秒,我如何从数据中删除秒>

     m_chart.period =   PERIOD_M1;
m_chart.start = m_trades[x].open_time;
m_chart.end = m_trades[x].close_time;
m_chart.mode = CHART_RANGE_IN;
candles = m_manager->ChartRequest(&m_chart, &stamp, &chart_total);

其中 m_trades[x].open_time 是我检索的带有秒数的数据,而 m_chart.start 是只需要日期、小时和分钟的过滤数据。

我希望你能帮我解决这个问题。

谢谢。

最佳答案

time_t 以秒为单位,因此如果您希望它只包含整数分钟,则必须减去剩余的秒数,例如:

t -= (t % 60) // minutes_only_sec = total_seconds - seconds_reminder_seconds

例如

time_t secs = 2 * 60 + 14;           // 2:14

time_t min_only = (secs - secs % 60);

std::cout << "seconds:" << secs << " / " << min_only << std::endl;
std::cout << "minutes: " << secs / 60 << ":" << (secs % 60)
<< " / " << min_only / 60 << ":" << (min_only % 60) << std::endl;

有以下输出:

seconds: 134 / 120

minutes 2:14 / 2:0

如果你想把它四舍五入,你可以测试:

if (secs % 60)
{
min_only += 60;
}

我建议使用 std::chrono::duration .它有点长:

    time_t min_only = std::chrono::seconds(
std::chrono::duration_cast<std::chrono::minutes>(std::chrono::seconds(secs))
).count();

关于c++ - time_t 四舍五入到分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47806692/

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