gpt4 book ai didi

c - 如何修改 C 中的 time_t 时间戳?

转载 作者:太空狗 更新时间:2023-10-29 15:03:01 24 4
gpt4 key购买 nike

这就是我们如何存储当前时间并使用 time.h 打印它:

$ cat addt.c
#include<stdio.h>
#include<time.h>

void print_time(time_t tt) {
char buf[80];
struct tm* st = localtime(&tt);
strftime(buf, 80, "%c", st);
printf("%s\n", buf);
}

int main() {
time_t t = time(NULL);
print_time(t);
return 0;
}
$ gcc addt.c -o addt
$ ./addt
Sat Nov 6 15:55:58 2010
$

如何将例如 5 分 35 秒添加到 time_t 并将其存储回 t

最佳答案

time_t 通常是一个整数类型,表示自纪元以来的秒数,因此您应该能够添加 335(5 分 35 秒)。

请记住,ISO C99 标准规定:

The range and precision of times representable in clock_t and time_t are implementation-defined.

因此,虽然这通常会起作用(并且在我用过的每个系统上都起作用),但在某些边缘情况下可能并非如此。

请参阅以下对程序的修改,增加了五分钟(300 秒):

#include<stdio.h>
#include<time.h>

void print_time(time_t tt) {
char buf[80];
struct tm* st = localtime(&tt);
strftime(buf, 80, "%c", st);
printf("%s\n", buf);
}

int main() {
time_t t = time(NULL);
print_time(t);
t += 300;
print_time(t);
return 0;
}

输出是:

Sat Nov  6 10:10:34 2010
Sat Nov 6 10:15:34 2010

关于c - 如何修改 C 中的 time_t 时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4113863/

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