这是我们如何存储当前时间并使用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
$
Run Code Online (Sandbox Code Playgroud)
如何添加,例如5分35秒time_t t并将其存回t?
time_t是通常的整体类型表示从epoch秒,所以应该能够添加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;
}
Run Code Online (Sandbox Code Playgroud)
输出是:
Sat Nov 6 10:10:34 2010
Sat Nov 6 10:15:34 2010
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6749 次 |
| 最近记录: |