Uhrzeiten addieren
-
So funktioniert es erstmal mit TEdit:
TDateTime Arbeitsbeginn = MaskEdit1->Text;
TDateTime Arbeitsende = MaskEdit2->Text;
TDateTime Arbeitsstunden = MaskEdit6->Text;Edit1->Text= Arbeitsende-Arbeitsbeginn;
Edit2->Text= Arbeitsende-Arbeitsbeginn-Arbeitsstunden;
-
Hallo,
leider kennt man kleines Programm den Befehl "HoursBetween" nicht.
Weiß Jemand, welche Datei ich mit include ( include ???.h)hinzufügen muss?TTime time1, time2;
time1 = Time();
time2 = Time();edTime1->Text = TimeToStr(time1);
edTime2->Text = TimeToStr(time2);Memo1->Lines->Add("Hours between: " + FloatToStr(HoursBetween(time1, time2)));
-
@alk
<System.DateUtils.hpp> inkludieren. Steht auch in der Hilfe.
-
Welche RAD Studio Version hast du denn?
-
Ich benutze die kostenlose Version, ich meine 11.1, kann ich von hier jetzt schlecht sagen.
-> C++Builder Community Edition
-
Ich dachte, vllt. hast du noch eine ganz alte Version vom RAD Studio (bzw C++ Builder).
Klappt es denn mit der Antwort von @DocShoe?
-
Kann erst heute Abend sagen....
-
Ich benutze die Version: Embarcadero C++Builder 10.4
Mit der <System.DateUtils.hpp> funktioniert es soweit, nur für eine Zeit von 06:00 bis 00:00 Uhr errechnet die Funktion 6 Stunden, müssen natürlich 18 Stunden sein.
-
0:00h meint die Uhrzeit des selben Tages wie 6:00h, also ist die Differenz 6 Stunden.
HoursBetween gibt immer ein positives Ergebnis zurück und daher sind die Parameterwerte austauschbar.
Wenn du 0:00h des nächsten Tages haben möchtest, dann mußt du
TDateTime
verwenden (und unterschiedliche Datumswerte angeben).
-
Kannste dir aber auch selber bauen:
double HoursBetween( TDateTime dt1, TDateTime dt2 ) { double const diff = dt1 > dt2 ? dt1.dVal - dt2.dVal : dt2.dVal - dt1.dVal; return diff * 24; }
-
Ich habe mir auch sowas in dieser Richtung gedacht, konnte aber noch nicht viel machen, ich habe gerade wenig Zeit.