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

引入日期和时间头文件

#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:%02dr", mt->tm_year + 1900, mt->tm_mon + 1, 			mt->tm_wday, mt->tm_hour, mt->tm_min, mt->tm_sec); 

打印效果如下:
利用C库函数time()打印当前系统动态时间

%02d:输出的整型数不足两位,左侧用0补齐。
r:转义字符回到当前行的行首,而不会换到下一行,继续输出,本行前面的内容会被逐一覆盖;
打印效果如下:
利用C库函数time()打印当前系统动态时间

延时函数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:%02dr", mt->tm_year + 1900, mt->tm_mon + 1, 			mt->tm_wday, mt->tm_hour, mt->tm_min, mt->tm_sec); 		Sleep(450); 	} 	return 0; } 

发表评论

评论已关闭。

相关文章