这两个时间任意,需要求它们之间差了多少秒或者多少毫秒,可以做到么?怎么做,能给出代码么

解决方案 »

  1.   

    SYSTEMTIME st1, st2;
    CTime t1(st1);
    CTime t2(st2);
    CTimeSpan ts = t2 - t1;
    LONG lsec = ts.GetTotalSeconds();
      

  2.   

    CTimeSpan只能精确到秒。
    COldTimeSpan?如果需要精确到毫秒,正确的方法是转换成FileTime再计算之间的毫秒差
    SystemTimeToFileTime
      

  3.   

    用SystemTimeToFileTime转换成FILETIME后,再将FILETIME转换成LARGE_INTEGER,再相减就可以了。
      

  4.   

    CTime t1( 1999, 3, 19, 22, 15, 0 ); // 1999年3月19日22:15   CTime t2( 1999, 3, 20, 22, 15, 0 ); // 1999年3月20日22:15   CTimeSpan ts = t2 - t1;   // 对两个日期变量相减,差值保存在CTimeSpan变量中   ASSERT( ts.GetTotalSeconds() == 86400L );
      

  5.   

    使用运行库的time()直接相减就是了.
      

  6.   

    忘记说了,不能使用MFC, ATL。
    因为是在WinCE上面开发的,这个arm平台似乎time()
    也不能用。只有SYSTEMTIME可以用啊。
      

  7.   

    我说的方法没有使用MFC、ATL啊,CE也支持的
      

  8.   

    请问File Time和System Time什么区别?
      

  9.   

    File Times 是从1601年1月1日0:00:00开始到现在的纳秒值,
    System Time 是一个结构,有年、月、日,时、分、秒、毫秒等信息。
      

  10.   

    那么在WinCE上面能够使用SystemTimeToFileTime么?
    又如何把FILETIME转换成LARGE_INTEGER呢?
      

  11.   

    WinCE没用过,楼主自己试试。
    LARGE_INTERGER(FILETIME.dwHighDateTime)<<32 + LARGE_INTERGER(FILETIME.dwLowDateTime)
      

  12.   

    WinCE支持SystemTimeToFileTime
    FILETIME转换成LARGE_INTEGER的方法lfchen(一条晚起的虫)说过了。
      

  13.   

    那wince上面支持LARGE_INTERGER么?需要包含什么头文件么?
    还有如果我要使用FILETIME,需要什么头文件么?
      

  14.   

    我用的GetTickCount,然后相减的,这样行么?而且我想问有没有什么方法是跨平台性比较好的?比如我想在Win32 WinCE Linux都能够使用的。