Avatar billede -ulli- Nybegynder
20. marts 2002 - 13:02 Der er 10 kommentarer og
1 løsning

Hvor lang tid?

Hej

Jeg har brug for en funktion der fortæller hvor lang tid der er gået fra x tidspunkt til y tidspunkt.

Jeg trykker på en knap. Tid x registreres. Funktioner udføres. Tid y registreres.

Hvordan laver man det?
Avatar billede doc404 Novice
20. marts 2002 - 13:19 #1
StartTime = Now;
....
HvorLangTidErDerGaaet = Now() - StartTme;
Avatar billede -ulli- Nybegynder
20. marts 2002 - 13:53 #2
ok.. det er noget lignende det..

hvad hvis jeg vil have det i sekunder? fx..

"Søgningen tog 2,7 sekunder"

så skal jeg der vel regnes milisekunder ud og sager.. Hvordan gør jeg det?
Avatar billede lanstorp Nybegynder
20. marts 2002 - 13:59 #3
tjaa, for du resultatet i milisekunder så prøv at gange med 1000
Avatar billede -ulli- Nybegynder
20. marts 2002 - 14:00 #4
Det gør jeg ikke jo.
Avatar billede ziron Nybegynder
20. marts 2002 - 14:24 #5
StartTime = GetTickCount;
....
HvorLangTidErDerGaaet = (GetTickCount - GetTickCount) * 1000;

/ZIRON
Avatar billede -ulli- Nybegynder
20. marts 2002 - 14:26 #6
ziron.. kører delphi 5 :|

den funktion er ik i help filen
Avatar billede borrisholt Novice
20. marts 2002 - 14:42 #7
jeg bruger min egen klasse :
unit Unit2;

interface

uses
Windows, SysUtils;

type
  TMeasurement = (Seconds, Cycles);
  TFastTime = class(TObject)
  private
    Frequency, StartTime, EndTime: Int64;
    RDTSC_START, RDTSC_STOP : Comp;
    FElapsedTime : String;
    fMeasurement : TMeasurement;
    Function GetTimeStamp : Int64;
  public
    Property ElapsedTime : String read FElapsedTime;
    Procedure Start(Measurement : TMeasurement = Seconds);
    Procedure Stop;
end;

implementation

function TFastTime.GetTimeStamp: Int64;
var
  TimeStamp : Record
    case byte of
      1 : (Whole: Int64);
      2 : (LO, HI : longint);
    end;
begin
  asm
    db $0F;
    db $31;
    mov [TimeStamp.LO], eax
    mov [TimeStamp.HI], edx
  end;
  Result:=TimeStamp.Whole;
end;

Procedure TFastTime.Start(Measurement : TMeasurement = Seconds);
begin
  fMeasurement := Measurement;
  if Measurement = Seconds then
  begin
    QueryPerformanceFrequency(Frequency);
    QueryPerformanceCounter(StartTime);
  end
  else
    RDTSC_START := GetTimeStamp;
end;

Procedure TFastTime.Stop;
begin
  if fMeasurement = Seconds then
  begin
    QueryPerformanceCounter(EndTime);
    FElapsedTime:= format('Seconds: %g', [(EndTime - StartTime)/ Frequency]);
  end
  else
  begin
    RDTSC_STOP := GetTimeStamp;
    FElapsedTime:= format('Clock Cycles: %.0n', [RDTSC_STOP - RDTSC_START]);
  end;
end;
end.


Jens B
Avatar billede borrisholt Novice
20. marts 2002 - 14:50 #8
?
Avatar billede ziron Nybegynder
20. marts 2002 - 23:42 #9
hmm jens du er sku for syg til mig og hvorfor du ikke skulle have point ved jeg ikke, men må man godt dele hvis man synes. eller er det mod reglerne, kan sku ikke huske med E3?

/ZIRON
Avatar billede borrisholt Novice
21. marts 2002 - 07:18 #10
nej det var sq ikke så meget det .. Det var mere en begrundelse jeg efterlyste ....  Jer er her (på eksperten) ikke for at få point .. Jeg er her fordi jeg synes det er sjovt ....

Har du været inde og stemme på www.ekspertenfest.dk ?

Jens B
Avatar billede ziron Nybegynder
21. marts 2002 - 08:01 #11
jens det er jeg klar over. men alligevel, point er lidt lige meget...

men lad os vente og se om der sker noget og jeg kigger lige på linket...

/ZIRON
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel