讀取網路時間 使用 idSNTP
來源網址 https://stackoverflow.com/questions/4297242/get-internet-time-in-delphi
function TForm1.GetRealTime: TDateTime;
var
SNTPClient: TIdSNTP;
begin
SNTPClient := TIdSNTP.Create(nil);
try
SNTPClient.Host := 'pool.ntp.org';
Result := SNTPClient.DateTime;
finally
SNTPClient.Free;
end;
end;
設定本機時間
procedure TForm1.XBSetLocalTime(DT: TDateTime);
var
newTime : TSystemTime;
y,m,d,h,n,s,z: word;
begin
try
DecodeDate(DT,y,m,d);
DecodeTime(DT,h,n,s,z);
newTime.wYear := y;
newTime.wMonth := m;
newTime.wDayOfWeek := DayOfWeek(DT);
newTime.wDay := d;
newTime.wHour := h;
newTime.wMinute := n;
newTime.wSecond := s;
newTime.wMilliseconds := z;
SetLocalTime(newTime);
SendMessage(HWND_TOPMOST, WM_TIMECHANGE, 0, 0);
except
Showmessage('設定時間失敗')
end;
end;
TDatetime 加減時間
來源網址 http://www.programmer-club.com.tw/ShowSameTitleN/delphi/19826.html
d1, d2: TDateTime;
d1 := d2 + EncodeDate(1, 0, 0); // d2 的時間加一年
d1 := d2 + EncodeDate(0, 1, 0); // d2 的時間加一個月
d1 := d2 + EncodeDate(0, 0, 1); // d2 的時間加一天
d1 := d2 + EncodeTime(1, 0, 0, 0); // d2 的時間加一小時,最大到23小時
d1 := d2 + EncodeTime(0, 1, 0, 0); // d2 的時間加一分鐘
d1 := d2 + EncodeTime(0, 0, 1, 0); // d2 的時間加一秒
d1 := d2 + EncodeTime(0, 0, 0, 1); // d2 的時間加一毫秒,加1000次才等於一秒
時間相減
DateUtils单元中的SecondsBetween
留言列表