CTimeSpan::GetHours Verständnisproblem



  • Hallo!

    Ich will mir die Differenz zu einem Zeitpunkt ausgeben lassen.
    Dafür habe ich folgenden Code:

    CTime tmNow = CTime::GetCurrentTime();
    	CTime tmEnde(2006,06,03,14,0,0,0);
    
    	CTimeSpan diff = tmEnde - tmNow;
    	CString strText;
    	strText.Format("Noch %d Tage, %d Stunden und %d Minuten", diff.GetDays(), diff.GetHours(), diff.GetMinutes());
    	SetDlgItemText(IDC_STC_AUSGABE, strText);
    

    Es ist 11:32 und bis 14:00 sind es noch 2 ganze Stunden.
    Mir wird aber 0 augegeben und die Zeit bei den Minuten passt auch nicht.

    Aus der MSDN werde ich nicht schlau. 😞

    Returns the number of hours in the current day (–23 through 23).

    Kann mir bitte mal jemand erklären, wie ich jetzt auf 2 Stunden und 28 Minuten komme? 🙂



  • Hi estartu_de,

    wie geht's ?! Weißt du schon, wo die Fehler ist ?

    In Definition von CTime tmEnde(2006,06,03,14,0,0,0);

    Der letzte Parameter muß eins sein

    CTime tmEnde(2006,06,03,14,0,0,1);

    um "Daylight savings time is in effect"

    Tschüß Fredy und hast du ein schones Weekend.

    (sorry fur meine deutche Sprache ...)



  • Danke für deine Antwort. 🙂
    Es hat leider nur zur Hälfte geholfen.

    Aber mittlerweile mache ich das "von Hand":

    LONGLONG nMinutes = diff.GetTotalMinutes();
    	int nTage = nMinutes / (24*60);
    	nMinutes %= (24*60);
    	int nStunde = nMinutes / 60;
            int nMinute = nMinutes % 60;
    

    Es ist jetzt 14:23 und es sollte ja die Differenz bis 14:00 angezeigt werden und laut dem Code von vorhin mit deiner Anpassung sind es noch 23 Minuten. 😕


Anmelden zum Antworten