List Container Zeitdifferenz



  • Ich habe 2 list/container und es sind einige Werte drin gespeichert.
    s.u.

    list <COleDateTime> m_lCMSC;
    list <COleDateTime> m_lCFFT;
    

    Die Containers sind vom typ COleDateTime. Die Werte sind in m_lCFFT und in m_lCMSC als Zeitformat (z.b. 11:49:28) gespeichert.
    Die Werte kann ich auf ein Dialog wie unten zeigen.

    list<COleDateTime>::iterator CFFTIt	= m_ptr->m_lCFFT.begin();
    list<COleDateTime>::iterator CMSCIt	= m_ptr->m_lCMSC.begin();
    
    		while (CFFTIt != m_ptr->m_lCFFT.end())
            {
    
                CString sStr2 = CFFTIt->Format(_T("%H:%M:%S"));
                pDC->TextOut(x_1+70,y_3,sStr2);
    
                y_3=y_3+20;
    
                CFFTIt++;
            } 
    		while (CMSCIt != m_ptr->m_lCMSC.end())
            {
    
                CString sStr2 = CMSCIt->Format(_T("%H:%M:%S"));
                pDC->TextOut(x_1+70,y_3,sStr2);
    
                y_3=y_3+20;
    
                CMSCIt++;
            }
    

    Mein problem ist folgendes; ich will differenz zeit auf dem Dialog zeigen, also die Werte die in m_lCFFT container und m_lCMSC container
    voneinaneder abziehen und diese Ergebnis(Zeitdifferenz) auf dem Dialog zeigen.

    Kann mir bitte jemand helfen.

    Vielen Dank


  • Mod

    Zieh einfach die beiden COleDateTime Werte vonenander ab. Das Ergebnis ist ein COleDateTimeSpan Wert. Aus dem kannst Du einfach die Stunden, Minuten, Sekunden extrahieren (COleDateTimeSpan::Get... Funktionen).



  • Soll ich iteratoren voneinander abziehen
    CFFTIt - CMSCIt

    oder so: m_ptr->m_lCFFT - m_ptr->m_lCMSC

    die beide habe ich probiert aber ich mach irgendwo einfehler



  • oder mach ich so

    m_ptr->m_lCFFT[0]-m_ptr->m_lCMSC[0];


  • Mod

    Das ist doch ein Iterator. Wenn Du die Werte abziehen willst musst Du auch auf den Wert Zugreifen.

    COleDateTimeSpan diff = *CFFTIt - *CMSCIt
    

    BTW: Deine Namen für Variablen kommen mir sehr eigentümlich vor...


Anmelden zum Antworten