Uhrzeit
-
Hallo ich programmiere meine ersten Programme und habe recht wenig erfahrung.
Ich habe einfach mal ein Programm mti verschiedenen Funktionen mit Hilfe des MFC Assistenten erstellt.
Ich will nun eine Uhr einfügen, das hab ich gemacht, kein Problem.
Nur das blöde ist die sekundenanzeige von der uhr ist etwas "abgespeckt", wenn die sekunden bei 0 wieder anfangen sollte dort "00" (z.B. 12:45:00) stehen aber da steht nur eine "0", also 12:45:0, und so zählt er auch hoch. Das sieht blöd aus.Bei der Funktion OnTimer durch den Klassenassisten habe ich per if-Funktion versucht das wenn sekunde unter 10 ist eine Null noch davor zu setzen, das macht er auch nur die null verschwindet dann nicht mehr obwohl ich eine weitere if-Funktion geschrieben habe die sagt, wenn sekunde >= "10" dann wieder normal zeigen also ohne null. aber die null bleibt dann immer dort.
ich glaube der geht die beiden if-Funktionen in der OnTimer Funktion nur einmal durch deshalb geht sie nicht weg. Wie mache ich das nun, weiss das einer. Würde mich freuen wenn mir einer helfen könnte.
danke im voraus.
eser
-
#include <dos.h> time t; char uhrzeit[9]; gettime(&t); wsprintf(uhrzeit, "%02d:%02d:%02d", t.ti_hour, t.ti_min, t.ti_sec); CString ZEIT(uhrzeit);
-
void CEserDlg::OnTimer(UINT nIDEvent)
{
//Aktuelle Zeit holen
CTime curTime = CTime::GetCurrentTime();char sekunde;
sekunde = curTime.GetSecond();
if(sekunde < '10')
m_sTime.Format("%d:%d:0%d", curTime.GetHour(), curTime.GetMinute(), curTime.GetSecond());if(sekunde >= '10')
m_sTime.Format("%d:%d:%d", curTime.GetHour(), curTime.GetMinute(), curTime.GetSecond());//Alles was oben gemacht ist, aktualisieren damit es gezeigt wird
UpdateData(FALSE);CDialog::OnTimer(nIDEvent);
}
-
warum geht das so nicht wie ich es oben stehen hab?
die uhrzeit wird ja angezeigt, alles ok, aber dennoch bleibt die null die ganze zeit über an der sekundenzahl auch wenn sie über 10 ist.
[ Dieser Beitrag wurde am 03.09.2002 um 01:26 Uhr von pius-coder editiert. ]
-
Das kommt davon, wenn man gutgemeinte Ratschläge missachtet.
-
Original erstellt von WebFritzi:
Das kommt davon, wenn man gutgemeinte Ratschläge missachtet.Ganz genau! Wenn du in nem Forum postest und dir die Antworten egal sind, macht das wenig Sinn!
-
#include <dos.h>
-
@<dos ist tot>
Es ging hier nicht um dos, sondern um die Formatierung!
-
These - Antithese - Synthese:
void CTimeDlg::OnTimer(UINT nIDEvent) { CTime curTime = CTime::GetCurrentTime(); m_sTime.Format("%02d:%02d:%02d", curTime.GetHour(), curTime.GetMinute(), curTime.GetSecond()); UpdateData(FALSE); CDialog::OnTimer(nIDEvent); }
-
Schön.
-
... und nun noch die spezielle Alternative:
void CTimeDlg::OnTimer(UINT nIDEvent) { CTime curTime = CTime::GetCurrentTime(); m_sTime = curTime.Format("%H:%M:%S"); UpdateData(FALSE); CDialog::OnTimer(nIDEvent); }
... und noch gleich das Datum:
void CTimeDlg::OnTimer(UINT nIDEvent) { CTime curTime = CTime::GetCurrentTime(); m_sTime = curTime.Format("%H:%M:%S %A, %B %d, %Y"); UpdateData(FALSE); CDialog::OnTimer(nIDEvent); }
-
Hoffentlich verlernen unsere "Kunden" dadurch nicht das selbstständige denken, wenn ihnen alles vorgekaut wird .....
-
Original erstellt von dEUs:
Hoffentlich verlernen unsere "Kunden" dadurch nicht das selbstständige denken, wenn ihnen alles vorgekaut wird .....Das ist aber zu befürchten. Und solange es hier Leute gibt, die Lösungscode posten anstatt die Fragenden erstmal auf die richtige Fährte zu führen, bleibt das so.
-
..
-
Hallo zusammen,
ist zwar off- topic aber trotzdem...
Ich finde Erhard hat hier mal was angesprochen, was mir auch schon seit einer Weile auffällt. Und ich finde er hat völlig recht.
Gute Frage -> Gute Antwort
Schlechte Frage -> Schlechte AntwortDazu ist das Forum da.
Alles andere riecht ein bisschen nach Profilierungssucht und wirkt oberlehrerhaft
.
Bitte nicht übelnehmen sondern als konstruktive Kritik vertehen. Das Forum ist gut und ich denke es sollte so bleiben. Ich meine auch niemanden persönlich es ist ein allgemeiner Trend.
Grüße, Volle.