本文主要详细介绍了C语言时间函数的mktime和difftime。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一个,希望能帮到你。
目录
mktime函数difftime函数摘要这两个函数原型如下:
_ _ CRT _ INLINE time _ t _ _ cdecl mktime(struct Tm * _ Tm);
_ _ CRT _ INLINE double _ _ cdecl diff time(time _ t _ time 1,time _ t _ time 2);
mktime函数
mktime函数会将timeptr指向的结构转换为自1970年1月1日以来的秒数,如果出现错误,则返回-1。
参数结构体原型如下:
结构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/*夏令时*/
};
下面是通过一段代码的直接演示。
#包含stdio.h
#包含stdlib.h
#包含时间. h
int main(int argc,char** argv)
{
int ret,time _ cnt
结构技术信息;
info . TM _ year=2022-1900;
info . TM _ mon=1-1;
info.tm _ mday=25
info.tm _ hour=11
info.tm _ min=28
info.tm _ sec=50
info . TM _ isdst=-1;
ret=mktime(info);
time_cnt=time(空);
if( ret==-1 ) {
printf('错误:无法使用mktime来安排时间\ n ');
}否则{
printf('%d %d ',ret,time _ CNT);
}
返回0;
}
首先定义时间结构,然后给结构中的变量赋值,给变量赋当前时间值,然后通过time函数得到当前时间的秒,最后打印出mktime函数转换的秒和time函数返回的秒。
结果可以看出,两个函数的秒差为1,这是由于程序编译执行时延迟了一秒,说明mktime函数转换后的秒与time函数返回的秒相同。
difftime函数
difftime功能有两个时间参数。这个函数的主要作用是返回这两个时间参数的差值,即这两个时间值之间的秒数。
一般这个函数可以用来计算某个代码的运行时间。
#包含stdio.h
#包含stdlib.h
#包含时间. h
int main(int argc,char** argv)
{
time_t start_t,end _ t;
双diff _ t;
Printf('程序启动.\ n’);
时间(start _ t);
睡眠(2);
Printf('操作结束!\ n’);
时间(end _ t);
diff_t=difftime(end_t,start _ t);
printf(' \ n开始时间:%d结束时间:%d代码运行时间:%fs\n ',start_t,end_t,diff _ t);
返回0;
}
定义两个变量记录程序运行前的时间值和程序运行后的时间值,然后用延时函数模拟程序的运行过程,最后用difftime函数计算函数的运行时间。
从打印结果可以看出,延时函数的执行时间为2s,程序中的延时为2s,说明该函数的计算结果是正确的。这里注意difftime函数的返回值是双精度数据。
总结
本文到此为止。希望能帮到你,也希望你能多关注我们的更多内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。