AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ganzzahl in Zeit Kovertieren?

Ein Thema von mlspider · begonnen am 9. Feb 2007 · letzter Beitrag vom 16. Okt 2007
Antwort Antwort
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#1

Ganzzahl in Zeit Kovertieren?

  Alt 9. Feb 2007, 15:01
Ich versuche die verbleibene Zeit eines Downloads wie folgt zu berechnen:

Delphi-Quellcode:
procedure TLizenz.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
var i:Integer;
begin
 if (GetTickCount - FTime) >= 1000 then
 begin
   label8.caption := Format('%.2f KB/s', [(AWorkCount - FBytes) / (GetTickCount - FTime)]);
   Label11.Caption:=Format('%.0f', [(AWorkCount - FBytes) / (GetTickCount - FTime)]);
   i:=StrToInt(Label11.Caption);
   FTime := GetTickCount;
   FBytes := AWorkCount;


 Label6.Caption := 'Download läuft ! '+' ('+inttostr(AWorkCount div 1024)+' kB von '+inttostr(IdHTTP1.Response.ContentStream.Size div 1024)+' kB)';
 Gauge1.Progress := AWorkCount*100 div IdHTTP1.Response.ContentStream.Size;

 Gauge1.MaxValue := IdHTTP1.Response.ContentStream.Size;
 Gauge1.Progress := AWorkCount;

 //geladene Bytes von Gesamtbytes abziehen
 Label10.Caption:=inttostr(IdHTTP1.Response.ContentStream.Size - AWorkCount);
 //und das ganze dividieren mit der Geschwindigkeit
 Label13.Caption:=IntToStr(StrToInt(Label10.Caption) div i;

 application.ProcessMessages;
end;
end;
Label13 gibt mir nun eine Ganzzahl aus. Wie formatiere ich nun letztenendes in Stunde, Minute, Sekunde?
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#2

Re: Ganzzahl in Zeit Kovertieren?

  Alt 9. Feb 2007, 15:24
Kleines Beispiel:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  dTime: TTime;
  wHour, wMin, wSec, wMSec: Word;
  dwMaxSeconds: DWORD;
begin
  dwMaxSeconds := StrToIntDef(Edit1.Text, 0);

  if (dwMaxSeconds <= 86400) then
  begin
    wHour := ((dwMaxSeconds div 60) div 60) mod 24;
    wMin := (dwMaxSeconds div 60) mod 60;
    wSec := dwMaxSeconds mod 60;
    wMSec := 0;

    dTime := EncodeTime(wHour, wMin, wSec, wMSec);
    Label1.Caption := TimeToStr(dTime);
  end
  else
// mehr als "23:59:59" ggf. andere Darstellungsweise
end;
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Ganzzahl in Zeit Kovertieren?

  Alt 9. Feb 2007, 15:31
Also wenn ich das richtig vertsanden habe, müßte ich für Edit1 das Label13 aus meinen Source angeben?
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Ganzzahl in Zeit Kovertieren?

  Alt 9. Feb 2007, 15:32
Wenn ich mich nicht ganz verhaue sollte es so gehen, wenn die Geschwindigkeit irgendwas pro Sekunde ist.

Dann sind 3600 Sekunden eine Stunde, 60 Sekunden eine Minute und der Rest sind Sekunden.

Delphi-Quellcode:
Stunden := (StrToInt(Label10.Caption) div i) div 3600;
Minuten := ((StrToInt(Label10.Caption) div i) mod 3600) div 60;
sekunden := ((StrToInt(Label10.Caption) div i) mod 3600) mod 60;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Ganzzahl in Zeit Kovertieren?

  Alt 9. Feb 2007, 15:39
@Klaus01,

So langsam habe ich nur noch Zahlendreher. Könntest Du mal Dein Beispiel auf meins anwenden?
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Ganzzahl in Zeit Kovertieren?

  Alt 9. Feb 2007, 15:54
Ich dachte mir das ungefähr so:

Delphi-Quellcode:

var
  stunden, minuten, sekunden: Integer;
...

stunden := (StrToInt(Label10.Caption) div i) div 3600;
minuten := ((StrToInt(Label10.Caption) div i) mod 3600) div 60;
sekunden := ((StrToInt(Label10.Caption) div i) mod 3600) mod 60;

label13.caption:=format('%.2d : %.2d : %.2d',[stunden,minuten,sekunden]);
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Ganzzahl in Zeit Kovertieren?

  Alt 9. Feb 2007, 17:04
Ja, so geht's. Danke.
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Ganzzahl in Zeit Kovertieren?

  Alt 9. Feb 2007, 17:25
Psst,

es gibt da noch eine Abkürzung durch den Wald - für die ganz harten Typen:

 TimeToStr(ticks * MSecsPerDay) Coole Grüße
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Ganzzahl in Zeit Kovertieren?

  Alt 16. Okt 2007, 22:27
Und keiner hat gemerkt, dass der Stern ein Schrägstrich sein muss:

 TimeToStr(ticks / MSecsPerDay)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:47 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