gpt4 book ai didi

c++ - ctime 和 time_t 的数学运算

转载 作者:行者123 更新时间:2023-11-28 02:36:29 27 4
gpt4 key购买 nike

有人知道如何用 ctime 做数学吗?我需要能够在“time_t”中获取以秒为单位的时间(就像通常那样),然后在将 time_t 输入到 ctime 中以获取时间和日期之前从中减去设定的秒数。

所以基本上它会计算这么多秒前的日期。

最佳答案

time_t日期和时间的最基本表示是类型 time_t。 time_t 变量的值是自 1970 年 1 月 1 日以来的秒数,有时称为 Unix 纪元。这是在内部表示事件开始和结束时间的最佳方式,因为比较这些值很容易。结构体time_t 将日期和时间表示为单个数字,而 struct tm 将其表示为具有大量数字的结构:

struct tm
{
int tm_sec; /* Seconds. [0-60] (1 leap second) */
int tm_min; /* Minutes. [0-59] */
int tm_hour; /* Hours. [0-23] */
int tm_mday; /* Day. [1-31] */
int tm_mon; /* Month. [0-11] */
int tm_year; /* Year - 1900. */
int tm_wday; /* Day of week. [0-6] */
int tm_yday; /* Days in year.[0-365] */
int tm_isdst; /* DST. [-1/0/1]*/
};

转化您可以使用 localtime 函数将 time_t 值转换为 struct tm 值:

struct tm startTM;
time_t start;

/* ... */

startTM = *localtime(&start);

所以,你可以像这样减去设定的秒数

startTm.tm_sec -= somesecond;

像这样添加转换为time_t

struct tm startTM;
time_t start;

/* ... */

start = mktime(&startTM);

并使用ctime fun来转换日期

ctime(&start)

希望对您有所帮助!

关于c++ - ctime 和 time_t 的数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27241195/

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