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.