[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/03/22(Tue) 11:52
投稿者名:ひろんた
Eメール:
URL :
タイトル:
NTPから時間取得をms(ミリセコンド)単位で取得したい
こんにちはひろんたと申します。
XP VB6環境です。

早速ですが色々な掲示板を調べてMS単位を取得したいと思っています。

'世界協定時刻時間に変換する(40-43バイト目で判別する ms単位は無視)
  cuTimeStamp = CCur(byGetTime(40)) * 2 ^ (8 * 3) + CCur(byGetTime(41)) * 2 ^ (8 * 2) _
                                  + CCur(byGetTime(42)) * 2 ^ 8 + CCur(byGetTime(43))

'NTPサーバから取得した時刻を現地時間に変換
  cuTimeStamp = cuTimeStamp - 2208988800@

  cuDays@ = cuTimeStamp \ (24 * CLng(60 * 60))        '日付計算(24h×60m×60s) CLngはオ
ーバーフロー対策
  cuTempSecs@ = cuTimeStamp Mod (24 * CLng(60 * 60))  '日付計算からのあまり(つまり本日分経
過した秒数)

  cuHours@ = cuTempSecs@ \ (60 * 60)        '時間計算(60m×60s)
  cuTempSecs@ = cuTempSecs@ Mod (60 * 60)   '時間計算からのあまり秒(つまり残りの分数以下)

  cuMinutes@ = cuTempSecs@ \ 60            '何分かの計算
  cuTempSecs@ = cuTempSecs@ Mod 60         '残りが秒

この内容でMSの取得をしたく改造方法をご指導お願い致します。
秒単位では取得できています。

投稿時間:2005/03/22(Tue) 16:00
投稿者名:LESIA
Eメール:
URL :
タイトル:
Re: NTPから時間取得をms(ミリセコンド)単位で取得したい
> '世界協定時刻時間に変換する(40-43バイト目で判別する ms単位は無視)
>   cuTimeStamp = CCur(byGetTime(40)) * 2 ^ (8 * 3) + CCur(byGetTime(41)) * 2 ^ (8 * 2) _
>                                   + CCur(byGetTime(42)) * 2 ^ 8 + CCur(byGetTime(43))

何を世界協定時刻時間に変換するのでしょうか?
byGetTime()の0-39バイト目と44バイト目以上には何が入っているのでしょうか?
「ms単位は無視」とコメントにあるので、ms単位を取得するには、40-43バント目じゃない
部分に含まれていると考えられるので、まずはbyGetTime()の中身が判らないとどうしようも
ないのでは?

投稿時間:2005/03/22(Tue) 16:59
投稿者名:ひろんた
Eメール:
URL :
タイトル:
Re^2: NTPから時間取得をms(ミリセコンド)単位で取得したい
LESIA様
ご指導ありがとうございます。
たしかに言われる通りですね(^^;
実は私自身も理解していないのですが
サーバーからの時間取得に際決まったフォーマットがあるみたいですが
検索してても見つからない状態でいます。
WinSockコントロールで取り入れているのでわかる人には簡単な事かなと
思ってしまいました。
もう少し検索して調べてみます。

投稿時間:2005/03/22(Tue) 18:20
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: NTPから時間取得をms(ミリセコンド)単位で取得したい
> サーバーからの時間取得に際決まったフォーマットがあるみたいですが
> 検索してても見つからない状態でいます。

RFC-2030を調べましょう。

投稿時間:2005/03/23(Wed) 09:21
投稿者名:ひろんた
Eメール:
URL :
タイトル:
Re^2: NTPから時間取得をms(ミリセコンド)単位で取得したい
K.J.Kさん
早速の情報ありがとうございます。

> RFC-2030を調べましょう。

勉強してみます。