プロが教えるわが家の防犯対策術!

卒論で温度とPC内部の時計の誤差の関係について測定を行おうと思っています。

そこでNetwork time protocol (NTP)を利用した正確な時刻を取得するプログラムを
知りたいです。

ご存知の方いましたらソースコードなどを教えてくれないでしょうか?

質問者からの補足コメント

  • 失礼しました。
    C言語です。

      補足日時:2018/10/03 16:35

A 回答 (4件)

正確な時刻を取得したいならば、自ら時計回路を組みましょう。


精度が1e-6であれば、0.086秒/日の誤差制度が得られます。
そして標準電波を受信して、適宜校正すればよいです。
ネットワーク情報やプログラム利用では、
伝搬時間やその動作時間分誤差が積算されますから、ハードウェア動作が良いです。

ただ、PC自体にNTPによる時刻校正機能があるので、
そのまま利用すればよいかと思います。
また、温度変化に対する応答時間が緩慢なので、
時刻の精度を追及しても意味はないでしょう。
    • good
    • 0

温度変化で影響されるほどの微妙なずれだったら、相当正確な時計を参照しなきゃいけないっていう判断は正しいと思います。

精度1msでも温度変化による影響かどうか見えるだろうか?やってみないとわからないよねって感じなんですけど、とにかくできる限り正確な時計が欲しいですね。

ただ、いくら正確な時計があっても、それを問い合わせた応答時間が安定しないと意味がなくなってしまいます。#1回答でも指摘されていますが。

どういうことかって、国立天文台の原子時計などを参照できれば正確です。でもそれを問い合わせて結果が戻ってくるのはネットワーク経由になるから、ネットワークの利用状況によって10msで戻ってきたり50msかかったり、3msでいけたりする場合がある(遅延とばらつきがある)ってことは容易に想像できますよね?つまりいくら正確な時計でも応答時間のばらつきが加わる時点で、精度が落ちてしまうんです。問い合わせて0時きっかりという応答が来た場合、ネットワーク遅延があるから実際の時間はそれより進んでいます。どれくらい進んでいるかは遅延のばらつきがあるからわかりません。

普通だったら、ネットワークを通した時点で信頼できるのは100ms単位まででしょう。ってことは時計の実力としても100msの精度になっちゃう。だったら下手すると電波時計と見比べた方が精度が高いなんていう、シャレにならないことになるかも知れませんよ。
    • good
    • 0

プログラミング言語は?

    • good
    • 0

https://lettier.github.io/posts/2016-04-26-lets- …
この辺でどうでしょう?
NTPから(ほぼ)正確な時間を取得するためには、通信速度が一定であるっていうのが条件だったような気がするけど、、、まあ、いろいろやってみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!