我已经知道了第一个时间的年,月,日,小时,分,秒,和第二个时间的年,月,日,小时,分,秒,现在想求两个时间之间的秒数,请高手给个例子,不胜感激

解决方案 »

  1.   

    CTime   放时间 
    CTimeSpan 放间隔
    两个时间比较得到后者的对象  
    然后就可以计算时间了
      

  2.   

    COleDateTime/COleDateTimeSpan也可以实现
      

  3.   

    Example// example for CTime::operator  +, -
    CTime t1( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999
    CTime t2( 1999, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 1999
    CTimeSpan ts = t2 - t1;  // Subtract 2 CTimes
    ASSERT( ts.GetTotalSeconds() == 86400L );
    ASSERT( ( t1 + ts ) == t2 );  // Add a CTimeSpan to a CTime.
    ASSERT( ( t2 - ts ) == t1 );  // Subtract a CTimeSpan from a Ctime.
      

  4.   

    CTime t1( 2004, 10, 19, 2, 13, 10 ); 
    CTime t2( 2004, 10, 19, 3, 16, 20 ); 
    CTimeSpan ts = t2 - t1;
      

  5.   

    COleDateTime starttime = COleDateTime::GetCurrentTime(); 
    COleDateTimeSpan endtime = COleDateTime::GetCurrentTime() - starttime;
    endtime.GetTotalSeconds();
             endtime.GetTotalMinutes();
      

  6.   

    CTime t1(2004, 10, 18, 0, 0, 0);
    CTime t2(2004, 10, 19, 0, 0, 0);
    CTimeSpan sp = t2 - t1;
    TRACE("%ld", sp.GetTotalSeconds());这样就可以了, 得到秒数
      

  7.   

    楼主解决了没有?没有的话我再翻翻我的程序,以前写过比较FTP服务器上的文件时间,最新的文件才下载。
      

  8.   

    找到了:
    bool CDownloadFTP::CheckFileTime(CTime FileTime)
    {
    CString sFileTime;
    int nYear = FileTime.GetYear();
    int nMon = FileTime.GetMonth();
    int nDay = FileTime.GetDay();
    int nHour = FileTime.GetHour();
    int nMin = FileTime.GetMinute(); sFileTime.Format("%d%02d%02d%02d%02d", FileTime.GetYear(), FileTime.GetMonth(), FileTime.GetDay(), FileTime.GetHour(), FileTime.GetMinute());
    __int64 nFileTime = _atoi64(sFileTime);
    __int64 nOldFileTime = _atoi64(theApp.m_CurPublisherInfo.m_sFileTimeNewest);
    if(nFileTime>nOldFileTime)
    {
    //TRACE0("big");
    char buffer[13];
    buffer[0]='\0';
    _i64toa(nFileTime, buffer, 10);
    buffer[12]='\0';
    m_sCurFileTimeNewest = buffer;
    return true;
    }
    else
    {
    return false;
    }

    bool CDownloadFTP::CheckFileTime(FILETIME ftWrite)
    {
    CString sFileTime;
    SYSTEMTIME stCreate;
    FILETIME ftLocal;
        // Convert the last-write time to local time.
        if (!FileTimeToLocalFileTime(&ftWrite, &ftLocal))
            return FALSE;    // Convert the local file time from UTC to system time.
        FileTimeToSystemTime(&ftLocal, &stCreate); sFileTime.Format("%d%02d%02d%02d%02d", stCreate.wYear, stCreate.wMonth, stCreate.wDay, stCreate.wHour, stCreate.wMinute); //sFileTime.Format("%d%02d%02d%02d%02d", FileTime.GetYear(), FileTime.GetMonth(), FileTime.GetDay(), FileTime.GetHour(), FileTime.GetMinute());
    __int64 nFileTime = _atoi64(sFileTime);
    __int64 nOldFileTime = _atoi64(theApp.m_CurPublisherInfo.m_sFileTimeNewest);
    if(nFileTime>nOldFileTime)
    {
    //TRACE0("big");
    char buffer[13];
    buffer[0]='\0';
    _i64toa(nFileTime, buffer, 10);
    buffer[12]='\0';
    m_sCurFileTimeNewest = buffer;
    return true;
    }
    else
    {
    return false;
    }
    }
      

  9.   

    CTime类对象直接相减就是时间差---以秒为单位.
    当然,标准做法是用CTimSpan.
      

  10.   

    tm ttime1, ttime2;
    ttime1.tm_year = 2004 - 1900;  //注意:以1900为基数
       ......
    long duration = mktime(&ttime1) - mktime(&ttime2);
    //时间差,以毫秒为单位!!
      

  11.   

    用CTimeSpan得到两个CTime之差就可以了
      

  12.   

    支持   kingofvc(连泰勒级数都不记得还是人吗?) 
    好多星星啊看的头晕呵呵