VC++时间差的计算

来源:互联网 发布:mac twisted 编辑:程序博客网 时间:2024/06/05 17:04

一、如何获取计算机时间

 

     要求获取的时间格式为:年月日时分秒

  

     1)获取本地区的时间用GetLocalTime,用法和GetSystemTime一样
     SYSTEMTIME   sm   =   {   0   };
     GetLocalTime(   &sm   );

     CString   time;
     time.Format( "%4d-%02d-%02d     %02d:%02d:%02d ",   st.wYear.....);

 

      sm.wYear  
      Current   year.   The   year   must   be   greater   than   1601.  
      Windows   Server   2003,   Windows   XP:     The   year   cannot   be   greater   than   30827. 
       sm.wMonth  
      Current   month;   January   =   1,   February   =   2,   and   so   on.  
      sm.wDayOfWeek  
      Current   day   of   the   week;   Sunday   =   0,   Monday   =   1,   and   so   on. 
      sm.wDay  , sm.wHour   ,sm.wMinute    ,sm.wSecond   ,sm.wMilliseconds  

    2)CTime   time   =   CTime::GetCurrentTime();
    CString   sCurDate=time.Format( "%Y年%m月%d   %H:%M:%S   第%U周   星期%w ");

  

    3)用批处理,一句话就行:

     echo   %date%   %time%   > >   CurrentTime.log
     --------------------------------------
    比如:
    2007-05-25   星期五   10:25:35.81  

 

二、计算时间差

 

  
(一)
DOWRD dwBeginTime=GetTickCount(); 返回开机以来,经历的毫秒数
執行你的程序.
DOWRD dwEndTime=GetTickCount();

(dwEndTime-dwBeginTime)/1000.就是你需要的
或者是

DWORD dwStart = GetTickCount();

// Stop if this has taken too long
if( GetTickCount() - dwStart >= TIMELIMIT )
Cancel();

(二)
用CTimeSpan类来返回时间差

 

先转换成COleDateTime类,用这两个类对象减得到COleTimeSpan类型,即可
SYSTEMTIME &stTimeF;
SYSTEMTIME &stTimeS;
 。。。。。。。。。。。
 COleDateTime dTimeF(stTimeF);
 COleDateTime dTimeS(stTimeS);
 COleDateTimeSpan dTimeSpan = dTimeF - dTimeS;
 int nSecnonSpan = dTimeSpan.GetTotalSeconds();



(三)
long t1,t2;
t1=time(0);//得到自1970年到现在时间的秒数

你的程序

t2=time(0);//
long a=t2-t1;//两数值相减即得到秒数

 

来源:电脑网络爱好者:http://www.pcnetfan.com/viewnews-49576.html