Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi verbleibende zeit - restdauer (https://www.delphipraxis.net/28003-verbleibende-zeit-restdauer.html)

Grumble 18. Aug 2004 13:07


verbleibende zeit - restdauer
 
hi,

ich wende mich mal wieder an euch... ich sitz schon ewig an diesem kleinen problem rum und find die loesung nicht...

also die sache ist so: ich oeffne eine textdatei, lese zeileweise aus und schreibe in datenbank, soweit so gut, es klappt auch alles, da das ganze nun recht lange dauert wollte ich ne restdauer angeben und hier liegt der hund begraben... also mal den code

Delphi-Quellcode:
While not EOF(tempFile) do
  begin
    if (z-1) mod 10 =0 then
    t1:=now;
    z:=z+1;
    if z mod 10 = 0 then
    begin
      inc(tc);
      t2:=now;
      t3:=t2-t1;           // zeitl. abstand 10 eintraege zeit 2 - zeit 1
      t3:=t3*24*60;        // in minuten
      t4:=(t3+t4)/tc;      // mittelwert zeit fuer 10 eintraege in min
    end;

    form1.ProgressBar1.Position:=z;
    form1.Label1.Caption:='Zeile: '+inttostr(z)+' / '+inttostr(fs);
    form1.Label3.Caption:='Verstrichene Zeit: '+ timetostr(now-ta);
    t3:=((fs-z)/10)*t4; // restdauer in min (anz. zeilen - zeile)/10*mittlere zeit fuer 10
    t3m:=60*(t3/60-trunc(t3/60)); // restminuten ermitteln
    form1.Label2.caption:='Restdauer: '+floattostrf(t3/60,fffixed,5,0)+' Stunden '+floattostrf(t3m,fffixed,7,2)+' Minuten    ';
    form1.Label2.Repaint;
    form1.ProgressBar1.Repaint;
    form1.Label1.Repaint;
    form1.Label3.Repaint;
also die verstrichene zeit wird ordentlich angezeigt, nur die restdauer ist verdammt klein und stimmt sogar nicht...
hat jemand n hinweis fuer mich woran das liegen koennte ? ich guck heute irgendwie nich durch :shock:

nailor 18. Aug 2004 14:39

Re: verbleibende zeit - restdauer
 
nimm mal die [ / delphi] tags und so, damit man das halbwegs effektiv lesen kann

Gruber_Hans_12345 18. Aug 2004 14:45

Re: verbleibende zeit - restdauer
 
warum nicht so ?

GesamtDauer := fs * (now - ta) * 24.0 * 60.0 / z;
DauerToDo := (fs - z) * (now - ta) * 24.0 * 60.0 / z;


Wenn fsw die gesamten zeilen; ta der Zeitpunkt des Startes und z die bereits kopierten Zeilen

Grumble 19. Aug 2004 08:48

Re: verbleibende zeit - restdauer
 
hi,

danke hans :) das klappt wunderbar .... :lol: so einfach und ich gruebel hier stundenlang :oops:

Snoop007 19. Aug 2004 09:16

Re: verbleibende zeit - restdauer
 
mal ne generelle frage : wie kommst du auf die konstanten werte :gruebel:

Grumble 19. Aug 2004 09:18

Re: verbleibende zeit - restdauer
 
meinst du 24 und 60?

Snoop007 19. Aug 2004 09:27

Re: verbleibende zeit - restdauer
 
jap :)

Treffnix 19. Aug 2004 09:29

Re: verbleibende zeit - restdauer
 
:roll:

Ein Tag hat 24 Stunden, eine Stunde hat 60 Minuten usw...

Grumble 19. Aug 2004 09:32

Re: verbleibende zeit - restdauer
 
das liegt daran, dass now vom typ tdatetime ist: dort steht in der OH :

Wenn beide TDateTime-Werte positiv sind, brauchen Sie zur Ermittlung der Tage zwischen zwei Datumsangaben die beiden Werte nur voneinander zu subtrahieren.

das heisst es kommen tage raus und um die in minuten umzurechnen: *24h * 60min

Snoop007 19. Aug 2004 09:49

Re: verbleibende zeit - restdauer
 
lol :wall: ja ja .. ich hätte vielleicht etwas länger nachdenken sollen :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz