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);
    

    😉


Anmelden zum Antworten