【发布时间】:2019-10-29 08:24:31
【问题描述】:
我不知道我的逻辑有什么问题:
#include <stdio.h>
#include <time.h>
int main() {
time_t seconds=time(NULL);
int time[5] = { 1,60,3600,86400,31536000 };
int second = (seconds % time[1])/time[0];
int minute = (seconds % time[2])/time[1];
int hour = (seconds % time[3])/time[2];
printf("%d:%d:%d\n", hour, minute, second);
}
它没有显示错误,但我无法打印准确的时间。
【问题讨论】:
-
那么它做了什么?
-
不是您的直接问题,但
time已经是标准库中函数的标识符。您正在使用它的另一个含义,导致 UB。 -
您看到了什么,您期待什么?请注意hour will be in
UTCby default,所以我猜你的时区小时数已经出来了。 -
@pmg 不错,但如果该网站也显示当地时间会更有用。