Code:

{ **** UBPFD ***************

>> Определение текущего времени(часы, минуты, секунды)

 Зависимости: SysUtils, Classes

Автор:       Eagle, Copyright:   MegaSoft

***************************************************** }

 

unit gettime;

 

interface

uses SysUtils, Classes;

 

function gethours: integer;

function getmins: integer;

function getsecs: integer;

 

implementation

 

function gethours: integer;

var

s: string;

h: integer;

begin

s := timetostr(time);

h := strtoint(s[1] + s[2]);

Result := h;

end;

 

function getmins: integer;

var

s: string;

h: integer;

begin

s := timetostr(time);

h := strtoint(s[4] + s[5]);

Result := h;

end;

 

function getsecs: integer;

var

s: string;

h: integer;

begin

s := timetostr(time);

h := strtoint(s[7] + s[8]);

Result := h;

end;

 

end.

 

 

Code:

procedure AM_or_PM;

begin

  if Frac(Time) = 0 then

    ShowMessage('AM')

  else

    ShowMessage('PM');

end;

 

Вот так можно узнать дату/время загрузки или завершения работы системы (т.е. когда компьютер был выключен или перезагружен последний раз):

Code:

procedure TForm1.Button4Click(Sender: TObject);

var

lt: TSYSTEMTIME;

st: TSYSTEMTIME;

begin

GetLocalTime(lt);

GetSystemTime(st);

Memo1.Lines.Add('LocalTime = ' +

   IntToStr(lt.wmonth) + '/' +

   IntToStr(lt.wDay) + '/' +

   IntToStr(lt.wYear) + ' ' +

   IntToStr(lt.wHour) + ':' +

   IntToStr(lt.wMinute) + ':' +

   IntToStr(lt.wSecond));

Memo1.Lines.Add('UTCTime = ' +

   IntToStr(st.wmonth) + '/' +

   IntToStr(st.wDay) + '/' +

   IntToStr(st.wYear) + ' ' +

   IntToStr(st.wHour) + ':' +

   IntToStr(st.wMinute) + ':' +

   IntToStr(st.wSecond));

end;

 

 

 

Code:

function LastInput: DWord;

var

  LInput: TLastInputInfo;

begin

  LInput.cbSize := SizeOf(TLastInputInfo);

  GetLastInputInfo(LInput);

  Result := GetTickCount - LInput.dwTime;

end;

 

 

//Example:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

  Label1.Caption := Format('System Idle since %d ms', [LastInput]);

end;

 

 

// The GetLastInputInfo function retrieves the time

// of the last input event.

// Minimum operating systems: Windows 2000

 

Code:

function Is24HourTimeFormat: Boolean;

var

  DefaultLCID: LCID;

begin

  DefaultLCID := GetThreadLocale;

  Result := 0 <> StrToIntDef(GetLocaleStr(DefaultLCID,

    LOCALE_ITIME,'0'), 0);

end;

 

 

 

 

Code:

// Wait 0.2ms

 

procedure PerformanceDelay;

var

hrRes, hrT1, hrT2, dif: Int64;

begin

if QueryPerformanceFrequency(hrRes) then

begin

   QueryPerformanceCounter(hrT1);

   repeat

     QueryPerformanceCounter(hrT2);

     dif := (hrT2 - hrT1) * 10000000 div hrRes;

   until dif > 2;

end;

end;

 

Очень-очень странные эти англоязычные люди... И счёт времени у них странный!

 

Вот так у них наступает полдень:

 

11:00 AM  (11 утра)

12:00 PM  <- полдень

1:00 PM  (13 часов)

 

Итак 12 PM - это полдень, а 12 AM - это полночь

 

Code:

Type TSystemPath=(Desktop,StartMenu,Programs,Startup,Personal, winroot, winsys);

{©Drkb v.3®Vit (Vitaly Nevzorov) }

 

...

Function GetSystemPath(SystemPath:TSystemPath):string;

var p:pchar;

begin

with TRegistry.Create do

try

RootKey := HKEY_CURRENT_USER;

OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', True);

case SystemPath of

Desktop: Result:=ReadString('Desktop');

StartMenu:Result:=ReadString('Start Menu');

Programs:Result:=ReadString('Programs');

Startup:Result:=ReadString('Startup');

Personal:Result:=ReadString('Personal');

Winroot:begin

GetMem(p,255);

GetWindowsDirectory(p,254);

result:=Strpas(p);

Freemem(p);

end;

WinSys:begin

GetMem(p,255);

GetSystemDirectory(p,254);

result:=Strpas(p);

Freemem(p);

end;

end;

finally

CloseKey;

free;

end;

if (result<>'') and (result[length(result)]<>'\') then result:=result+'\';

end;

 

Ниже приведён код обработчика события OnClick для Button1. Он показывает диалоговое окошко с текстом в следующем формате

 Windows started on Thursday, February 10, 2000 at 11:42:46 AM

Its been up for 0 days, 3 hours, 22 minutes, 54 seconds

Code:

function GetWindowsFolder:string;

{©Drkb v.3, ®Vit (Vitaly Nevzorov) }

 

var p:PChar;

begin

GetMem(p, MAX_PATH);

result:='';

if GetWindowsDirectory(p, MAX_PATH)>0 then

   result:=string(p);

FreeMem(p);

end;