GetTime

0

Próba wciśnięcia Paskalowego GetTime do Delphi skończyła się błędem.
Ma ktoś może jakiś pomysł jak to zrobić?

0

sprobuj funkcji TimeToStr(Time) zwraca ona godzine w postaci Stringa np. 0911
a jak nie to powiedz do czego potrzebne jest ci pobranie godziny :)---=[ Delphi 3, 6 ]=-
-=-==[ LKS ]==-=-

0

Piszę małą symulację procesu dla wzoru mam programik z Paskala gdzie wykożystana jest ta funkcja dla przykładu:

function CzasDos : longint;
var
Hour,Min,Sec,Sec100 : word;
begin
GetTime (Hour,Min,Sec,Sec100);
CzaDos := 360000*Hour + longint(6000) * Min + 100 * Sec + Sec100
end; {CzasDos}

marko

0

ta funkcja ktora napisales w delphi wygladala by mniej wiecej tak:

function CzasDos : longint;
var
Hour,Min,Sec,Sec100 : word;
begin
DecodeTime(Now, Hour,Min,Sec,Sec100);
Result := 360000*Hour + longint(6000) * Min + 100 * Sec + Sec100
end; {CzasDos}

jak zauwazyles zamiast GetTime jest DecodeTime :)

---=[ Delphi 3, 6 ]=-
-=-==[ LKS ]==-=-

0

Byc moze DecodeTime(Time, Hour, Min, Sec, Sec100);
dzialaloby kapke szybciej, bo nie bedzie tracilo czasu na odczyt daty. Choc zalezy to od implementacji, bo moze Time=TimeOf(Now) i wtedy bedzie wolniej.

BTW, Delphi help zaleca uzywanie formatu TTimeStamp a nie TDateTime jesli potrzebna jest duza dokladnosc Use TTimeStamp to represent date and time values when a great deal of accuracy is required for the time portion. When the time values do not need to be precise to the millisecond, use the more compact TDateTime representation.

Czy ktos jednak wie jak odczytac aktualny czas dokladnie? Innymi slowy czy istnieje odpowiednik Now/Time zwracajacy czas w formie TTimeStamp?
--Pawel

Delphi6

0

A nie lepiej korzystac z TDateTime , gdzie
czas : TDateTime;
begin czas := Now; end;

0

Fojcik w dniu 16.4.2002 12:15 napisal:
A nie lepiej korzystac z TDateTime , gdzie
&gtczas : TDateTime;
&gtbegin czas := Now; end;
&gt

W ogole moze tak, ale czlowiek jak rozumiem chcial miec czas podany jako liczba milisekund.

Co moze chyba uzyskac nastepujaco

function CzasDos : longword;

Result:=MilisecondsOfTheDay(Now); // lub (Time), vide powyzej

end; {CzasDos}

--Pawel

Delphi6

0

Sorry za literowki:

Result:=MillisecondOfTheDay(Now); // lub (Time), vide powyzej

Aha, i wymaga
uses DateUtils;--Pawel

Delphi6

0

Znalazlem mozliwosc precyzyjnego pomiaru krotkich odcinkow czasu, np testowania szybkosci wykonania kodu. Moze komus sie przyda:

procedure TForm1.Button1Click(Sender: TObject);

var
Freq, TimeStart, TimeEnd : Int64;
i: integer;
test : extended;
begin
if QueryPerformanceFrequency(Freq) then
begin
QueryPerformanceCounter(TimeStart);
for i:=1 to 10000 do
begin

  // Kod do testowania
  test:=random;

 end;
 QueryPerformanceCounter(TimeEnd);

 Label1.Caption:='Wykonanie 10 000 razy zajelo: '+
                FloatToStr((TimeEnd-TimeStart)/Freq*1000)+
                ' ms';

end;
end;
--Pawel

Delphi6

0

Dzięki wszystkim za pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1