利用C库函数time()打印当前系统动态时间
2022/9/12 23:24:33
本文主要是介绍利用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:%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()打印当前系统动态时间的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01巧用 TiCDC Syncpoint 构建银行实时交易和准实时计算一体化架构
- 2024-05-01银行核心背后的落地工程体系丨Oracle - TiDB 数据迁移详解
- 2024-04-26高性能表格工具VTable总体构成-icode9专业技术文章分享
- 2024-04-16软路由代理问题, tg 无法代理问题-icode9专业技术文章分享
- 2024-04-16程序猿用什么锅-icode9专业技术文章分享
- 2024-04-16自建 NAS 的方案-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数, 加上remote_src: yes 配置-icode9专业技术文章分享
- 2024-04-14ansible 检测远程主机的8080端口,如果关闭,则echo 进程已关闭-icode9专业技术文章分享
- 2024-04-14result 成功怎么写-icode9专业技术文章分享