お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"自動で時計合わせ"



インターネットで公開されているアメリカのタイムサーバーから時間を
取り込んで,自分のPCの時間を合わせるプログラム.
  DayTimeだといちいち文字列をパースしないといけないので,TIME
プロトコルのほうが日付まで扱うのもかえって簡単です.
  D4 Professionalに付属のTNMTimeコンポを使います.

・フォーム(DataModuleではだめ)にTNMTimeコンポを貼り付けてプロパティ
を設定し,ボタンのOnClickに下記コードを書き込み,あらかじめ
インターネットに接続したパソコンで実行して下さい.

see:
  http://www.bldrdoc.gov/timefreq/service/nts.htm



---------------------------------------------------------------
NMTime1のproperty
  Host    : time-a.nist.gov ,time-b.nist.gov など.福岡大のはNTPだけ?
  TimeOut : 5000
  Port    : 37  (default)

procedure TOptionForm.GetTimeStrBtnClick(Sender: TObject);
var
  I: integer;
  I6: Int64;
  Y,M,D,H,Min,S,MS: Word;
  DT: TDateTime;
  ST: SYSTEMTIME;
begin
  I := NMTime1.TimeInt;            // access the server
  I6 := 0;
  Move(I,I6,SizeOf(Integer));      // use as unsigned 32bit integer
  DT := I6 / (24 * 60 * 60) + 2;   // plus leaps
  DecodeDate(DT,Y,M,D);
  DecodeTime(DT,H,Min,S,MS);
  with ST do begin
    wYear := Y;
    wMonth := M;
//    WORD wDayOfWeek;
    wDay := D;
    wHour := H;
    wMinute := Min;
    wSecond := S;
    wMilliseconds := MS;
  end;
  SetSystemTime( ST );              // correct PC's clock
end;

                                                  TN(CQJ01721)

Original document by TN            氏 ID:(CQJ01721)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum