c语言获取系统时间Word格式文档下载.docx

上传人:b****6 文档编号:18872586 上传时间:2023-01-01 格式:DOCX 页数:5 大小:17.17KB
下载 相关 举报
c语言获取系统时间Word格式文档下载.docx_第1页
第1页 / 共5页
c语言获取系统时间Word格式文档下载.docx_第2页
第2页 / 共5页
c语言获取系统时间Word格式文档下载.docx_第3页
第3页 / 共5页
c语言获取系统时间Word格式文档下载.docx_第4页
第4页 / 共5页
c语言获取系统时间Word格式文档下载.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言获取系统时间Word格式文档下载.docx

《c语言获取系统时间Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c语言获取系统时间Word格式文档下载.docx(5页珍藏版)》请在冰豆网上搜索。

c语言获取系统时间Word格式文档下载.docx

//用标准C实现获取当前系统时间的函数

一.time()函数

time(&

rawtime)函数获取当前时间距1970年1月1日的秒数,以秒计数单位,存于rawtime中。

#include"

time.h"

voidmain()

{

time_trawtime;

structtm*timeinfo;

time(&

rawtime);

timeinfo=localtime(&

printf("

/007Thecurrentdate/timeis:

%s"

asctime(timeinfo));

exit(0);

}

=================

#include--必须的时间函数头文件

time_t--时间类型(time.h定义是typedeflongtime_t;

追根溯源,time_t是long)

structtm--时间结构,time.h定义如下:

inttm_sec;

inttm_min;

inttm_hour;

inttm_mday;

inttm_mon;

inttm_year;

inttm_wday;

inttm_yday;

inttm_isdst;

--获取时间,以秒计,从1970年1月一日起算,存于rawtime

localtime(&

--转为当地时间,tm时间结构

asctime()--转为标准ASCII时间格式:

星期月日时:

分:

秒年

-----------------------------------------------------------------------------

二.clock()函数,用clock()函数,得到系统启动以后的毫秒级时间,然后除以CLOCKS_PER_SEC,就可以换成“秒”,标准c函数。

clock_tclock(void);

#include

clock_tt=clock();

longsec=t/CLOCKS_PER_SEC;

他是记录时钟周期的,实现看来不会很精确,需要试验验证;

---------------------------------------------------------------------------

三.gettime(&

t);

据说tc2.0的time结构含有毫秒信息

intmain(void)

structtimet;

gettime(&

printf("

Thecurrenttimeis:

%2d:

%02d:

%02d.%02d/n"

t.ti_hour,t.ti_min,t.ti_sec,t.ti_hund);

return0;

time是一个结构体,,其中成员函数ti_hund是毫秒。

--------------------------------------------------------------------------------

四.GetTickCount(),这个是windows里面常用来计算程序运行时间的函数;

DWORDdwStart=GetTickCount();

//这里运行你的程序代码

DWORDdwEnd=GetTickCount();

则(dwEnd-dwStart)就是你的程序运行时间,以毫秒为单位

这个函数只精确到55ms,1个tick就是55ms。

五.timeGetTime()t,imeGetTime()基本等于GetTickCount(),但是精度更高

DWORDdwStart=timeGetTime();

DWORDdwEnd=timeGetTime();

则(dwEnd-dwStart)就是你的程序运行时间,以毫秒为单位

虽然返回的值单位应该是ms,但传说精度只有10ms。

=========================================

//*****************************************************************Unix

##unix时间相关,也是标准库的

1.timegm函数只是将structtm结构转成time_t结构,不使用时区信息;

time_ttimegm(structtm*tm);

2.mktime使用时区信息

time_tmktime(structtm*tm);

timelocal函数是GNU扩展的与posix函数mktime相当

time_ttimelocal(structtm*tm);

3.gmtime函数只是将time_t结构转成structtm结构,不使用时区信息;

structtm*gmtime(consttime_t*clock);

4.localtime使用时区信息

structtm*localtime(consttime_t*clock);

1.time获取时间,stime设置时间

time_tt;

t=time(&

2.stime其参数应该是GMT时间,根据本地时区设置为本地时间;

intstime(time_t*tp)

3.UTC=true表示采用夏时制;

4.文件的修改时间等信息全部采用GMT时间存放,不同的系统在得到修改时间后通过localtime转换成本地时间;

5.设置时区推荐使用setup来设置;

6.设置时区也可以先更变/etc/sysconfig/clock中的设置再将ln-fs/usr/share/zoneinfo/xxxx/xxx/etc/localtime才能重效

time_t只能表示68年的范围,即mktime只能返回1970-2038这一段范围的time_t

看看你的系统是否有time_t64,它能表示更大的时间范围

//***************************************************************windows

##Window里面的一些不一样的

一.CTime()类

VC编程一般使用CTime类获得当前日期和时间

CTimet=GetCurrentTime();

SYSTEMTIME结构包含毫秒信息

typedefstruct_SYSTEMTIME{

WORDwYear;

WORDwMonth;

WORDwDayOfWeek;

WORDwDay;

WORDwHour;

WORDwMinute;

WORDwSecond;

WORDwMilliseconds;

}SYSTEMTIME,*PSYSTEMTIME;

SYSTEMTIMEt1;

GetSystemTime(&

t1)

CTimecurTime(t1);

WORDms=t1.wMilliseconds;

SYSTEMTIMEsysTm;

GetLocalTime(&

sysTm);

在time.h中的_strtime()//只能在windows中用

chart[11];

_strtime(t);

puts(t);

//*****************************

获得当前日期和时间

CTimetm=CTime:

GetCurrentTime();

CStringstr=tm.Format("

%Y-%m-%d"

);

在VC中,我们可以借助CTime时间类,获取系统当前日期,具体使用方法如下:

CTimet=CTime:

//获取系统日期,存储在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);

CTimeSpanspan=t-t1;

//计算当前系统时间与时间t1的间隔

intiDay=span.GetDays();

//获取这段时间间隔共有多少天

intiHour=span.GetTotalHours();

//获取总共有多少小时

intiMin=span.GetTotalMinutes();

//获取总共有多少分钟

intiSec=span.GetTotalSeconds();

//获取总共有多少秒

------------------------------------------------------------------------------

三._timeb()函数

_timeb定义在SYS/TIMEB.H,有四个fields

dstflag

millitm

time

timezone

void_ftime(struct_timeb*timeptr);

struct_timebtimebuffer;

_ftime(&

timebuffer);

取当前时间:

文档讲可以到ms,有人测试,好象只能到16ms!

四.设置计时器

定义TIMERID

#defineTIMERID_JISUANFANGSHI2

在适当的地方设置时钟,需要开始其作用的地方;

SetTimer(TIMERID_JISUANFANGSHI,200,NULL);

在不需要定时器的时候的时候销毁掉时钟

KillTimer(TIMERID_JISUANFANGSHI);

对应VC程序的消息映射

voidCJisuan:

OnTimer(UINTnIDEvent)

{switch(nIDEvent)}

---------------------------------------------------------------------------------------

##如何设定当前系统时间---------------------------------------windows

SYSTEMTIMEm_myLocalTime,*lpSystemTime;

m_myLocalTime.wYear=2003;

m_myLocalTime.wM;

m_myLocalTime.wDay=1;

m_myLocalTime.wHour=0;

m_myLocalTime.wMinute=0;

m_myLocalTime.wSec;

m_myLocalTime.wMillisec;

lpSystemTime=&

m_myLocalTime;

if(SetLocalTime(lpSystemTime))//此处换成SetSystemTime()也不行

MessageBox("

OK!

"

else

Error!

if(SetDate(lpSystemTime))//此处换成SetSystemTime()也不行

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1