![]() |
AW: Zeitmessung
Im Format-String von FormatDateTime dürfen nur gültige Format-Bezeichner stehen.
|
AW: Zeitmessung
Zitat:
Es schwirren hier auch fertige StoppUhr Beispiele rum bzw. gibt es in neueren Delphi-Versionen evtl. sogar eine? |
AW: Zeitmessung
Ich würde mal ende-start, anstatt start-ende rechnen ... dann kommen da auch keine negativen Werte raus.
(deine positiven Tage/monate/Jahre sind eigentlich durch einen negativen Bereichsüberlauf entstanden) [edit] Tschuldschung, hab Seite 2 übersehn :oops: |
AW: Zeitmessung
Auch wenn ich ende und start vertausche kommen die 30 Tage, 12 Monate und 99 Jahre raus. Wie kann ich das verändern :?::?::?:
@ DeddyH: Was meinst du damit? |
AW: Zeitmessung
Damit meine ich, dass z.B. bei dem Wort "Jahre" das "h" als Stunde interpretiert und somit geparst wird. Von daher verbieten sich bei FormatDateTime alle Zeichen oder Wörter, die mit der eigentlichen Formatierung nichts zu tun haben.
|
AW: Zeitmessung
@ DeddyH: Ich meine ja immer das vor dem Wort ist der Wert!
@ all: Vorschläge zur Vermeidung, dass 30 Tage, 12 Monate und 99 Jahre ausgegeben werden, wenn nichtmal ein Tag vergangen ist? Ideen wären sehr hilfreich :thumb::thumb::thumb:!!! |
AW: Zeitmessung
@DeddyH: rte mal, warum er soviele " in dem Text hat ... alles was damit Maskiert ist, wird nicht als Steuerzeichen geparst ... also macht das h in Jahre keine Probleme. :angle:
Und zu den Werten bei Tag/Monat/Jahr ... welchen Wert haben denn die Variablen? |
AW: Zeitmessung
Ich send einfach mal den wichtigen Teil des Quelltextes:
Code:
(immernoch 30 Tage, 12 Monate und 99 Jahre ausgegeben)
procedure TForm1.BerechnenClick(Sender: TObject);
var start,ende:tdatetime; begin start:=now; //Quelltext, dessen Zeit gemessen werden soll ende:=now; showmessage(SysUtils.FormatDateTime('d" Tage":" "m" Monate":" "y" Jahre":" "h" Stunden":" "n" Minuten":" "s" Sekunden ":" "z" Millisekunden"',ende-start)); end; Ideen? |
AW: Zeitmessung
Geht das nicht einfacher, wenn man direkt in milliseconds arbeitet?
Delphi-Quellcode:
var
start, ende, dauer : Int64; datumswert: TDatetime; begin start := GetTickCount; // hier kommt die ganz lange Funktion ende := GetTickCount; dauer:= ende - start; // und jetzt noch reine Mathematik oder per Format() ins gewünschte Ausgabeformat bringen zb.: datumswert:= dauer / MSecsPerSec / SecsPerDay; showmessage(FormatDateTime('d" Tage":" "m" Monate":" "y" Jahre":" "h" Stunden":" "n" Minuten":" "s" Sekunden ":" "z" Millisekunden"',datumswert)); |
AW: Zeitmessung
Zeitstempel aus Post #10 schon gesichtet?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz