利用C库函数time()打印当前系统动态时间

2022-11-07,,,,

引入日期和时间头文件

#include<time.h>

用time_t定义一个存储时间的变量获取时间(以秒为单位)

time_t t;
time (&t); //获取1970年以来的秒数,UTC(协调世界时)。

struct tm 结构体

根据time_t函数获得的时间通过struct tm结构体转换为本地时间(北京时间)。

struct tm* mt = localtime(&t);

tm 结构的定义如下:

struct tm {
int tm_sec; /* 秒,范围从 0 到 59 */
int tm_min; /* 分,范围从 0 到 59 */
int tm_hour; /* 小时,范围从 0 到 23 */
int tm_mday; /* 一月中的第几天,范围从 1 到 31 */
int tm_mon; /* 月,范围从 0 到 11 */
int tm_year; /* 自 1900 年起的年数 */
int tm_wday; /* 一周中的第几天,范围从 0 到 6 */
int tm_yday; /* 一年中的第几天,范围从 0 到 365 */
int tm_isdst; /* 夏令时 */
};

打印时间

tm_year是从格林威治时间1970年算起,打印它时需要加上1900;tm_mon从0开始算,打印它时需要加1。

printf("%d-%02d-%d %02d:%02d:%02d\r", mt->tm_year + 1900, mt->tm_mon + 1,
mt->tm_wday, mt->tm_hour, mt->tm_min, mt->tm_sec);

打印效果如下:

%02d:输出的整型数不足两位,左侧用0补齐。

\r:转义字符回到当前行的行首,而不会换到下一行,继续输出,本行前面的内容会被逐一覆盖;

打印效果如下:

延时函数sleep()

windows
Sleep()
#include <windows.h>
参数为毫秒
linux
sleep()
函数原型
#include <unistd.h>
参数为秒

完整代码如下:

#include <stdio.h>
#include <time.h>
#include <windows.h>
int main() {
time_t t; //定义一个存储时间的变量(以秒为单位)
while (1) {
time(&t);
struct tm* mt = localtime(&t);
printf("%d-%02d-%d %02d:%02d:%02d\r", mt->tm_year + 1900, mt->tm_mon + 1,
mt->tm_wday, mt->tm_hour, mt->tm_min, mt->tm_sec);
Sleep(450);
}
return 0;
}

利用C库函数time()打印当前系统动态时间的相关教程结束。

《利用C库函数time()打印当前系统动态时间.doc》

下载本文的Word格式文档,以方便收藏与打印。