Dauerberechnung mit Anzeige in hh,mm
-
Hallo,
ich habe ein kleines Problem beim Programmieren mit C++.
Ich habe in meinem Programm ein Edit Feld in dem ein Datum und Zeitwert steht.
Nun möchte ich durch klicken eines Buttons die Differenz zwischen der Zeit die im Edit Feld steht und dar aktuellen Zeit angezeigt bekommen. Ich habe dafür auch schon ein Quellcode geschrieben aber leider bin ich damit noch nicht 100%ig zufriedenTDateTime dttime =StrToDateTime(Edit1->Text); int iCountdown = (int)(TDateTime(TDateTime::CurrentDateTime() - dttime.Val).Val*24*60*60); int Tage, Std, Min , Sek; Sek = iCountdown % 60; iCountdown -= Sek; iCountdown /= 60; Min = (iCountdown) % 60; iCountdown -= Min; iCountdown /= 60; Std = (iCountdown) % 24; iCountdown -= Std; iCountdown /= 24; Tage = (iCountdown); Edit2->Text=Tag*24+Std;Soweit funktioniert auch das Programm. Wenn ich z.B. im Edit1 den Wert 28.08.2006 07:08:01 stehen habe und wir hätten jetzt 30.08.2006 08:16:34 dann würde im meinem Edit2 25 stehen. Nur möchte ich nicht nur die volle Stundenanzahl angezeigt bekommen sondern auch die Minuten hinter einem Komma. Also z.B. 25,08. Hierbei spielt es aber bei mir keine Rolle ob die Zahl hinter dem Komma nur bis 60 oder bis 100 gezählt wird.
-
warum so umständlich?

TDateTime dttime =StrToDateTime(Edit1->Text); double diff = Now()-dttime; //liefert einen Werte in Tagen und hinter dem Komma den Stundenanteil double stunden = diff * 24; Edit2->Text = FloatToStr(stunden);
-
Danke. Klappt wirklich prima.
Nur wie runde ich das ganz auf zwei Stellen hinter dem Komma???
-
Hallo
mit der Funktion FloatToStrF
bis bald
akari
-
Also an Stelle von "Edit2->Text = FloatToStr(stunden);" "Edit2->Text = FloatToStrF(stunden); " schreiben?
Geht aber bei mir leider nicht, bekomme die Fehlermeldung "zu wenige Parameter"
-
Hallo
Dann schau dir die von mir genannte Funktion doch mal in der BCB-Hilfe an, inbesondere deren Parameter.
bis bald
akari
-
Blick in der Hilfe nicht ganz durch. Was muss ich ganua machen damit es geht?
-
Hallo
AnsiString Buffer = FloatToStrF(10.123, ffFixed, 7, 2);Diese Zeile gibt dir den Float-Wert gerundet auf 7 Stellen und mit 2 Nachkommastellen zurück
bis bald
akari