C语言获取当前系统时间的几种方式

上传人:汽*** 文档编号:508003817 上传时间:2023-06-30 格式:DOCX 页数:7 大小:27.38KB
返回 下载 相关 举报
C语言获取当前系统时间的几种方式_第1页
第1页 / 共7页
C语言获取当前系统时间的几种方式_第2页
第2页 / 共7页
C语言获取当前系统时间的几种方式_第3页
第3页 / 共7页
C语言获取当前系统时间的几种方式_第4页
第4页 / 共7页
C语言获取当前系统时间的几种方式_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《C语言获取当前系统时间的几种方式》由会员分享,可在线阅读,更多相关《C语言获取当前系统时间的几种方式(7页珍藏版)》请在金锄头文库上搜索。

1、C语言中如何获取时间?精度如何?1使用time_ttime(time_t*timer)精确到秒2使用clock_tclock()得到的是CPU时间精确到1/CLOCKS_PER_SEC秒3计算时间差使用doubledifftime(time_ttimer1,time_ttimerO)4使用DWORDGetTickCount()精确到毫秒5如果使用MFC的CTime类,可以用CTime:GetCurrentTime()精确到秒6要获取高精度时间,可以使用BOOLQueryPerformanceFrequency(LARGE_INTEGER*lpFrequency)获取系统的计数器的频率BOOLQ

2、ueryPerformanceCounter(LARGE_INTEGER*lpPerformanceCount)获取计数器的值然后用两次计数器的差除以Frequency就得到时间。7MultimediaTimerFunctionsThefollowingfunctionsareusedwithmultimediatimers.timeBeginPeriod/timeEndPeriod/timeGetDevCaps/timeGetSystemTime/*/用标准C实现获取当前系统时间的函数time()函数rawtime中time(&rawtime)函数获取当前时间距1970年1月1日的秒数,以秒

3、计数单位,存于#includetime.hvoidmain()time_trawtime;structtm*timeinfo;time(&rawtime);timeinfo=localtime(&rawtime);printf(007Thecurrentdate/timeis:%s,asctime(timeinfo);exit(O);#inelude-必须的时间函数头文件time_t-时间类型(time.h定义是typedeflongtime_t;追根溯源,time_t是long)structtm-时间结构,time.h定义如下:inttm_see;inttm_min;inttm_hour;i

4、nttm_mday;inttm_mon;inttm_year;inttm_wday;inttm_yday;inttm_isdst;time(&rawtime);-获取时间,以秒计,从1970年1月一日起算,存于rawtimeloealtime(&rawtime);-转为当地时间,tm时间结构asctime()-转为标准ASCII时间格式:星期月日时:分:秒年clock()函数,用clock()函数,得到系统启动以后的毫秒级时间,然后除以CLOCKS_PER_SEC,就可以换成秒”标准c函数。clock_tclock(void);#includeclock_tt=clock();longsec=

5、t/CLOCKS_PER_SEC;他是记录时钟周期的,实现看来不会很精确,需要试验验证;gettime(&t);据说tc2.0的time结构含有毫秒信息#include#includeintmain(void)structtimet;gettime(&t);printf(Thecurrenttimeis:-:d:d.dn,t.ti_hour,t.ti_min,t.ti_sec,t.ti_hund);return0;time是一个结构体,其中成员函数ti_hund是毫秒GetTickCount(),这个是windows里面常用来计算程序运行时间的函数;DWORDdwStart=GetTickCo

6、unt();/这里运行你的程序代码DWORDdwEnd=GetTickCount();则(dwEnd-dwStart)就是你的程序运行时间,以毫秒为单位这个函数只精确到55ms,1个tick就是55ms。timeGetTime()t,imeGetTime()基本等于GetTickCount(),但是精度更高DWORDdwStart=timeGetTime();/这里运行你的程序代码DWORDdwEnd=timeGetTime();则(dwEnd-dwStart)就是你的程序运行时间,以毫秒为单位虽然返回的值单位应该是ms,但传说精度只有10ms。*Unix#unix时间相关,也是标准库的*ti

7、megm函数只是将structtm结构转成time_t结构,不使用时区信息;time_ttimegm(structtm*tm);mktime使用时区信息time_tmktime(structtm*tm);timelocal函数是GNU扩展的与posix函数mktime相当time_ttimelocal(structtm*tm);gmtime函数只是将time_t结构转成structtm结构,不使用时区信息;structtm*gmtime(consttime_t*clock);4.localtime使用时区信息structtm*localtime(consttime_t*clock);time获

8、取时间,stime设置时间time_tt;t=time(&t);stime其参数应该是GMT时间,根据本地时区设置为本地时间;intstime(time_t*tp)UTC=true表示采用夏时制;localtime文件的修改时间等信息全部采用GMT时间存放,不同的系统在得到修改时间后通过转换成本地时间;设置时区推荐使用setup来设置;设置时区也可以先更变/etc/sysconfig/clock中的设置再将In-fs/usr/share/zoneinfo/xxxx/xxx/etc/localtime才能重效time_ttime_t只能表示68年的范围,即mktime只能返回1970-2038这

9、一段范围的看看你的系统是否有time_t64,它能表示更大的时间范围/*windows#Window里面的一些不一样的/*一.CTime()类VC编程一般使用CTime类获得当前日期和时间CTimet=GetCurrentTime();SYSTEMTIME结构包含毫秒信息typedefstruct_SYSTEMTIMEWORDwYear;WORDwMonth;WORDwDayOfWeek;WORDwDay;WORDwHour;WORDwMinute;WORDwSecond;WORDwMilliseconds;SYSTEMTIME,*PSYSTEMTIME;SYSTEMTIMEt1;GetSys

10、temTime(&t1)CTimecurTime(t1);WORDms=t1.wMilliseconds;SYSTEMTIMEsysTm;:GetLocalTime(&sysTm);在time.h中的_strtime()/只能在windows中用chart11;_strtime(t);puts(t);/*获得当前日期和时间CTimetm=CTime:GetCurrentTime();CStringstr=tm.Format(%Y-%m-%d);在VC中,我们可以借助CTime时间类,获取系统当前日期,具体使用方法如下:CTimet=CTime:GetCurrentTime();/获取系统日期,

11、存储在t里面intd=t.GetDay();/获得当前日期inty=t.GetYear();/获取当前年份intm=t.GetMonth();/获取当前月份inth=t.GetHour();/获取当前为几时intmm=t.GetMinute();/获取当前分钟ints=t.GetSecond();/获取当前秒intw=t.GetDayOfWeek();/获取星期几,注意1为星期天,7为星期六CTimeSpan类如果想计算两段时间的差值,可以使用CTimeSpan类,具体使用方法如下:CTimet1(1999,3,19,22,15,0);CTimet=CTime:GetCurrentTime()

12、;CTimeSpanspan=t-t1;/计算当前系统时间与时间t1的间隔intiDay=span.GetDays();/获取这段时间间隔共有多少天intiHour=span.GetTotalHours();/获取总共有多少小时intiMin=span.GetTotalMinutes();获取总共有多少分钟intiSec=span.GetTotalSeconds();获取总共有多少秒_timeb()函数_timeb定义在SYSTIMEB.H,有四个fieldsdstflagmillitmtimetimezonevoid_ftime(struct_timeb*timeptr);struct_ti

13、mebtimebuffer;_ftime(&timebuffer);取当前时间:文档讲可以到ms,有人测试,好象只能到16ms!设置计时器定义TIMERID#defineTIMERID_JISUANFANGSHI2在适当的地方设置时钟,需要开始其作用的地方;SetTimer(TIMERID_JISUANFANGSHI,200,NULL);在不需要定时器的时候的时候销毁掉时钟KillTimer(TIMERID_JISUANFANGSHI);对应VC程序的消息映射voidCJisuan:OnTimer(UINTnIDEvent)switch(nIDEvent)#如何设定当前系统时间windowsS

14、YSTEMTIMEm_myLocalTime,*lpSystemTime;m_myLocalTime.wYear=2003;m_myLocalTime.wM;m_myLocalTime.wDay=1;m_myLocalTime.wHour=O;m_myLocalTime.wMinute=0;m_myLocalTime.wSec;m_myLocalTime.wMillisec;lpSystemTime=&m_myLocalTime;if(SetLocalTime(lpSystemTime)/此处换成SetSystemTime()也不行MessageBox(OK!);elseMessageBox(Error!);SYSTEMTIMEm_myLocalTime,*lpSystemTime;m_myLocalTime.wYear=2003;m_myLocalTime.wM;m_myLocalTime.wDay=1;lpSystemTime=&m_myLocalTime;if(SetDate(lpSystemTime)/此处换成SetSystemTime()也不行MessageBox(OK!);elseMessageBox(Error!);本文来自CSDN博客,转载请标明岀处:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号