Problem mit COleDateTime



  • Ich weiss, dieses Thema wurde schon sehr oft behandelt, aber ich blicks trotzdem nicht.

    CString uhrdiff;
    COleDateTime strUhr,m_sDate;
    COleDateTimeSpan diff;
    
    diff=m_sDate-strUhr;                      
    uhrdiff=diff.Format("%H:%M:%S");
    

    ...

    Und hier krieg ich nen Fehler

    DateiSpeichern.WriteString ("Am " + m_sCount + " von " + strUhr + " bis " + "zum " + m_sDate + " um " + m_sTime + " | Laufzeit = " +uhrdiff+ "\n") ;
    

    ...
    error C2593: 'Operator +' ist mehrdeutig
    ...

    Ich vermute stark es hat was damit auf sich das ich oben bei der COleDateTimeSpan nicht richtig konvertiere(CString->Zeiger). Kann mir jemand helfen ?



  • Die COleDateTime Objekte (strUhr, m_sDate usw) solltest du beim Schreiben in Strings formatieren (wie du es auch bei uhrdiff gemacht hast).



  • Du musst u.a. strUhr noch in CString wandeln, sonst weiß der nicht, ob er Zeichenketten oder COleDateTimes addieren soll.



  • Also habs jetzt so :

    CString uhrdiff, erste, zweite;
    	COleDateTime ersteuhr,zweiteuhr;
    	COleDateTimeSpan diff;
    
    	diff= zweiteuhr - ersteuhr;                      
    	uhrdiff=diff.Format("%H:%M:%S");
    

    So nun zeigt er mir bei Laufzeit 00:00:00 an, ist ja auch klar.
    Jetzt möchte ich gerne "ersteuhr" den CString "strUhr" übergeben, weil dort meine erste gespeicherte Zeit steht. Wie mach ich das ?

    Wenn ich einfach schreib : ersteuhr = strUhr;
    Dann krieg ich ne Fehlermeldung :
    error C2679: Binärer Operator '=': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'CString' akzeptiert (oder keine geeignete Konvertierung möglich)



  • Versuch's mal mit ParseDateTime().



  • Alles klar funktioniert, besten Dank 👍



  • toxor schrieb:

    ...

    Und hier krieg ich nen Fehler

    DateiSpeichern.WriteString ("Am " + m_sCount + " von " + strUhr + " bis " + "zum " + m_sDate + " um " + m_sTime + " | Laufzeit = " +uhrdiff+ "\n") ;
    

    ...
    error C2593: 'Operator +' ist mehrdeutig
    ...

    DateiSpeichern.WriteString ([b]CString("Am ")[/b] + m_sCount + " von " + strUhr + " bis " + "zum " + m_sDate + " um " + m_sTime + " | Laufzeit = " +uhrdiff+ "\n") ;
    


  • und warum nicht so?

    +" bis zum "+
    

Anmelden zum Antworten