いつもお世話になっております。
timeGetTimeで取得したms単位のデータから時刻データを作成したいと考えております。
具体的には、timeGetTimeから1ms間隔でデータを取得し、その値を以下のイメージの時刻データで表示したいと考えております。
18:20:13.123
18:20:13.124
:
18:20:14.001
また、プログラムイメージは以下のような感じです。
--------------------------------------------------
int i ;
DWORD sTime ,eTime ;
etime = timeGetTime() ;
for (i=0 ; i < 1000 ; i++)
{
while ((sTime = timeGetTime()) == etime) ;
XXXXXX <--- ここで sTime を現在時刻に変換したい
printf ("%02d:%02d:%02d.%03d" ,.....) ;
etime = timeGetTime() ;
}
timeGetTime()で取得したデータから現在時刻を作成するようなAPIをネットで探しているのですが、お恥ずかしい話、うまく見つける事ができません。
つたない説明で分かり難いと思いますが、何かよい方法が御座いましたらご教授の程、宜しくお願い致します。
MSDNを見たら
> システム時刻をミリ秒単位で取得します。
> システム時刻は Windows が起動してから経過した時間です。
となっているから現在時刻というのは考えていないんじゃないの。
存在しないものは求めようもない
timeGetTimeはシステム起動時からの経過時間を返しているだけ
約49日で0に戻る
GetLocalTimeで一応msec単位までの刻とれますよ
1msecの精度はないでしょうけど…
GetLocalTimeで時刻取得を試してみたのですが、ご指摘の通り、1msecの精度を得られませんでした。
処理の始めにGetLocalTimeで時刻を取得して、1msecづつ足し込んでいくしかないのかも知れませんね。
ちなみに、Windowsが起動した時刻は取得できるのでしょうか?
精度と分解能は違う。
そもそも Windows ってそんなリアルタイムは処理は保証されていない。
1msec が必要な処理は Windows で行うべき案件ではないと思う。
あれから色々と検討した結果、時刻の設定が不要になりましたので、当該質問については解決とさせて頂きます。
皆様、ご協力ありがとうございました。
ツイート | ![]() |