Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zeit in hh:mm:ss anzeigen (https://www.delphipraxis.net/114855-zeit-hh-mm-ss-anzeigen.html)

TheMiller 1. Jun 2008 23:24


Zeit in hh:mm:ss anzeigen
 
Hallo,

ich drehe bald mit meinem geliebten Zeit-Funktionen durch... Ich möchte die Zeit messen und das Format hh:mm:ss angeben. Hatte auch einige Versuche schon, aber oftmals war es so, dass die Sekunden über die 60 hinausgehen. Ich arbeite mit einem Timer (Interval 50ms), sowie GetTickCount, mod und div... aber irgendwie ist das für mein Hirn zu durcheinander ... ...

Ich bitte um eine kleine Starthilfe...

Dax 1. Jun 2008 23:31

Re: Zeit in hh:mm:ss anzeigen
 
Stunden = Sekunden div 3600
Minuten = (Sekunden div 60) mod 60
Sekunden = Sekunden mod 60

Danach musst du es nur noch auf deinem Lieblingsweg zu nem ganzen String zusammenfriemeln ;)

TheMiller 1. Jun 2008 23:36

Re: Zeit in hh:mm:ss anzeigen
 
So hatte ich es auch... ABER:

Ich habe folgendes gerechnet

Delphi-Quellcode:
diff:=GetTickDiff(recstart, GetTickCount());
Doch das sind ja keine Sekunden, sondern 1/1000-Sekunden. Ich danke dir...

Also, für alle, die genauso auf dem Schlauch stehen, wie ich:

Delphi-Quellcode:
var
  h, m, s: Integer;
  diff: Integer;
begin
  diff:=GetTickDiff(recstart, GetTickCount()) div 1000; // <- erst durch div 1000 werden es Sekunden!!!

  h:=diff div 3600;
  m:=(diff div 60) mod 60;
  s:=diff mod 60;

  Label2.Caption:=Format('%.2d:%.2d:%.2d', [h,m,s]);

Danke und gute Nacht!

BullsEye 1. Jun 2008 23:41

Re: Zeit in hh:mm:ss anzeigen
 
Delphi-Quellcode:
VAR Hour, Min, Sec, mSec: Word;
begin
  Panel1.Caption := TimeToStr(Time);
  StatusBar1.Panels[0].Text := TimeToStr(Time);
  StatusBar1.Panels[1].Text := FormatDateTime ('"Heute ist" dddd, "der" d mmmm yyyy" ', Date);
  DecodeTime(time, Hour, Min, Sec, mSec);
  TrackBar1.Position := Sec;
Zum Download
Quelle

EWeiss 1. Jun 2008 23:42

Re: Zeit in hh:mm:ss anzeigen
 
Zitat:

Zitat von DJ-SPM
So hatte ich es auch... ABER:

Ich habe folgendes gerechnet

Delphi-Quellcode:
diff:=GetTickDiff(recstart, GetTickCount());
Doch das sind ja keine Sekunden, sondern 1/1000-Sekunden. Ich danke dir...

Also, für alle, die genauso auf dem Schlauch stehen, wie ich:

Delphi-Quellcode:
var
  h, m, s: Integer;
  diff: Integer;
begin
  diff:=GetTickDiff(recstart, GetTickCount()) div 1000; // <- erst durch div 1000 werden es Sekunden!!!

  h:=diff div 3600;
  m:=(diff div 60) mod 60;
  s:=diff mod 60;

  Label2.Caption:=Format('%.2d:%.2d:%.2d', [h,m,s]);

Danke und gute Nacht!

hmmmm geht auch so..

Delphi-Quellcode:
function GetSongPosStr(timeinms: integer): string;
var
  time_s: double;
  hours, minutes, seconds, dsec: integer;
begin

  if timeinms >= 0 then
  begin
    time_s := timeinms * 0.001;
    hours  := Trunc(time_s / 60 / 60) mod 60;
    time_s := time_s - (hours * 60 * 60);
    minutes := Trunc(time_s / 60);
    time_s := time_s - (minutes * 60);
    seconds := Trunc(time_s);
    time_s := time_s - seconds;
    dsec   := Trunc(time_s * 100);

    if hours > 0 then
      Result := Format('%2d:%.2d:%.2d.%.2d', [hours, minutes, seconds, dsec])
    else
      Result := Format('%.2d:%.2d.%.2d', [minutes, seconds, dsec]);
  end else
    Result := '';
end;
Kann man auch für deine zwecke verwenden

gruss Emil

Kruemel_02 2. Jun 2008 11:50

Re: Zeit in hh:mm:ss anzeigen
 
Zitat:

Zitat von DJ-SPM
Hallo,

ich drehe bald mit meinem geliebten Zeit-Funktionen durch... Ich möchte die Zeit messen und das Format hh:mm:ss angeben. Hatte auch einige Versuche schon, aber oftmals war es so, dass die Sekunden über die 60 hinausgehen. Ich arbeite mit einem Timer (Interval 50ms), sowie GetTickCount, mod und div... aber irgendwie ist das für mein Hirn zu durcheinander ... ...

Ich bitte um eine kleine Starthilfe...

Zum Thema Zeit messen wuerde ich mir mal noch folgenden Threads anschauen:
Zeitmessung mit dem RealTimeCounter
QueryPerformanceCounter


Ansonsten:
MiliSecondsBetween bzw. nochmal MilliSecondsBetween wenn Du zweit TTime bzw. TDateTime Datentypen hast.
Hier noch von einer anderen Seite: Differenz zwischen zwei TDateTime-Werten ausgeben


Zum Ausgeben: FormatDateTime


Vielleicht auch noch zum Thema passend: Delphi Dates and Times

TheMiller 2. Jun 2008 11:55

Re: Zeit in hh:mm:ss anzeigen
 
Danke für die Links. Das kann ich gut gebrauchen... Ich stehe mit den Datums- und Zeitrechenfunktionen, sei es in Pascal oder auch in PHP, absolut auf Kriegsfuß!

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:07 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