Programowanie w języku Delphi » FAQ

Jak sprawdzić ile czasu upłynęło od startu systemu

  • 2006-02-01 13:04
  • 5 komentarzy
  • 1654 odsłony
  • Oceń ten tekst jako pierwszy
W celu sprawdzenia ile minut upłynęło od uruchomienia systemu możemy skorzystać z dwóch funkcji zadeklarowanych w modułach Windows lub MMSystem.

W pierwszym wypadku kod będzie wyglądał następująco:

program Foo;
 
{$APPTYPE CONSOLE}
 
uses Windows;
 
var
  SysTime : Cardinal;
begin
  SysTime := GetTickCount div 60000;
  Writeln('System pracuje przez: ', SysTime, ' min.');
  Readln;
end.

Drugie rozwiązanie polega na wykorzystaniu funkcji TimeGetTime:

program Foo;
 
{$APPTYPE CONSOLE}
 
uses MMSystem;
 
var
  SysTime : Cardinal;
begin
  SysTime := TimeGetTime div 60000;
  Writeln('System pracuje przez: ', SysTime, ' min.');
  Readln;
end.

5 komentarzy

stingear 2008-08-27 13:26

to przykład kodu który poda nam dokladnie czas działania systemu ładnie ułożony na godziny, minuty i sekundy, kod wrzucamy do timera:

zmienne zadeklarować globalnie.

var
  godz,min,sec,min1,sec1 : Cardinal;
  czas,data,godz1:string;

begin
 godz :=GetTickCount() div 3600000;
 min :=GetTickCount() div 60000;
 sec :=GetTickCount() div 1000;
 sec1:= sec - min*60;
 min1:= min - godz * 60;
  if (sec>1) then
 begin
 czas := IntToStr(sec1)+ 's';
 end;
 if (sec>=60) then
 begin
 czas := IntToStr(min1)+ 'm ' + IntToStr(sec1)+ 's';
 end;
 if (min>=60) then
 begin
 czas := IntToStr(godz) + 'h ' + IntToStr(min1)+ 'm ' + IntToStr(sec1)+ 's';
 end;


zmienną "czas" teraz wystarczy wyświetlić w labelu lub innym elemęcie, jak się komu podoba

brodny 2005-07-12 17:39

abc: wszystko fajno, tylko zamiast Integer użyj typu Cardinal

WeeR 2005-07-05 07:28

No, bo tak poza tym to to już bylo

abc 2005-07-04 23:19

A jak zrobic to bez dodatkowych modulow ?
A no tak:

var
czas : Cardinal; //a tu byl integer gdyz skopjowalem z powyzszego :]
begin
 czas :=GetTickCount() div 60000;
 Caption:='System pracuje przez: '+IntToStr(czas)+' min.';
end;