Funktion Time()
-
Ich habe mir ein Programm geschrieben, welches verschiedene Zeiten ermittelt.
double azeit, ezeit, rzeit, differenz, ges_rzeit; differenz = ezeit - azeit - rzeit; // Rechnung for (bedingung) ges_rzeit = ges_rzeit + (differenz); // Ermittelt Gesamtzeit AnsiString ges_zeit = TimeToStr(ges_rzeit).SubString(1,5); // Anzeige der Gesamtzeit
Da beim Durchlauf der Schleife die Gesamtzeit 24 Std. überschreitet kommt häufig eine viel kleinere Gesamtzeit zustande. Ist es möglich mit TimeToStr auch > 24 Std anzeigen zu lassen?
-
Neeee! (Glaub' ich)
Datum und Zeit wrden stark gekoppelt behandelt.
Ganzzahliger Teil liefert Datum
gebrochener Tei liefert Zeit.Davon gehen die Datums / Zeit- Funktionen aus (bezogen auf einen Stichtag).
-
Fuer manuelle Berechnung geht das:
AnsiString Zeit; int Days,Hours,Min,Sec; TDateTime DT; //Edit1 ist Eingabe der Zahl "dd,xxxxxxx" DT=Edit1->Text.ToDouble(); //Berechnen Day / Hours / Min / Sec Days=DT; Hours=int(double(DT) * 24) % 24; Min=(int(double(DT) * 24 * 60) ) % 60; Sec=((int(double(DT) * 24 * 60 * 60))) % 60; Zeit=Days; Zeit=Zeit.operator +=("d : ").operator +=(Hours); Zeit=Zeit.operator +=("h : ").operator +=(Min); Zeit=Zeit.operator +=("m : ").operator +=(Sec); Zeit=Zeit.operator +=("s : "); Label1->Caption=Zeit; //Berechnen Hours / Min / Sec mit Hours auch ueber 24!!! Hours=double(DT) * 24; Min=(int(double(DT) * 24 * 60) ) % 60; Sec=((int(double(DT) * 24 * 60 * 60))) % 60; Zeit=Hours; Zeit=Zeit.operator +=("h : ").operator +=(Min); Zeit=Zeit.operator +=("m : ").operator +=(Sec); Zeit=Zeit.operator +=("s : "); Label3->Caption=Zeit; //Berechnen mit System- Funktion Label2->Caption=TimeToStr(DT).SubString(1,5);