这是我们如何存储当前时间并使用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
并将其存回t
?
答案 0 :(得分:5)
time_t
通常是一个整数类型,表示自纪元以来的秒数,所以你应该可以添加335(5分35秒)。
请记住,ISO C99标准规定:
clock_t
和time_t
中可表示的时间范围和精度是实现定义的。
因此虽然这通常会起作用(并且在我曾经使用的每个系统上都这样做),但可能会出现一些边缘情况并非如此。
请参阅以下对您的程序的修改,增加了五分钟(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