程序中
SYSTEMTIME   time,time1;   
 ::GetLocalTime   (&time); {.......}//某段程序代码::GetLocalTime   (&time1); 那么如何计算到time与tiem1 之间相差多少毫秒,并用 afxmessagebox输出?

解决方案 »

  1.   

    typedef struct _SYSTEMTIME {
        WORD wYear;
        WORD wMonth;
        WORD wDayOfWeek;
        WORD wDay;
        WORD wHour;
        WORD wMinute;
        WORD wSecond;
        WORD wMilliseconds;
    } SYSTEMTIME;#define Second 1000
    #define Minute Second * 60
    #define Hour Minute * 60
    #define Day Hour * 60long lTime = (time1.wDay - time.wDay) * Day;
    lTime += (time1.wHour - time.wHour) * Hour;
    lTime += (time1.wMinute - time.wMinute) * Minute;
    lTime += (time1.wSecond - time.wSecond) * Second;
    lTime += time1.wMilliseconds - time.wMilliseconds;CString strTime;
    strTime.Format("时间为:%d毫秒", lTime);
    AfxMessageBox(strTime);
      

  2.   

    COleDateTime dtCurrent,dtCurrent1,dtCurrent2,;
    dtCurrent1 = COleDateTime::GetCurrentTime(); 
    dtCurrent2 = COleDateTime::GetCurrentTime();  
    dtCurrent = dtCurrent2 - dtCurrent1;
    CString str;
    str = dtCurrent.Format("%Y-%m-%d %H:%M:%S");
      

  3.   

    我的意思是将以cstring 的形式输出相差的毫秒数
      

  4.   

    clock_t start = clock();
    开始工作
    ...
    结束工作
    clock_t end = clock() - start;
    CString str;
    str.Format(_T("%d"), end);
      

  5.   

    clock()取的是CPU滴答数,应该是很精确了
      

  6.   

    计算毫秒的话,直接用GetTickCount()不是更方便吗?
    int iStart = GetTickCount();
    ...
    int iDiff = GetTickCount()-iStart;// 即毫秒差
      

  7.   

    我尝试一下这样做(在button的单击事件中):
    int iStart = GetTickCount();
    Sleep(2129);
    int iDiff = GetTickCount()-iStart;// 即毫秒差
    CString str;
    str.Format(_T("%d"), iDiff);
    MessageBox(str,0);
    可是怎么单击button 后显示出来的毫秒差不是每次都相同?
    2125,2140,2141...都有?
    这里的GetTickCount()是什么函数啊?
      

  8.   

    因为windows不是一个实时的操作系统,所以sleep的时间无法精确到毫秒级,比如SetTimer的精度也只有50ms左右,要再高的精度就要用其它方法了。
      

  9.   

    Windows时间函数大全
    http://blog.csdn.net/ugg/archive/2007/03/09/1525015.aspx
      

  10.   

    1,GetTickCount()
    2,获得两个时间的差值,得CTimeSpan,用CTimeSpan得到