忍者ブログ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2024/04/27

FILETIMEからd_timeへの変換

http://support.microsoft.com/kb/167296 に、Unix Time(time_t)からFILETIMEへの変換方法が載っています。
d_timeは1970年1月1日からの経過時間で、Unix Timeとは始点は同様ですが、粒度が違います。

wftがFILETIMEを64ビット整数に格納したとして、オーバーフローを考慮しないとすれば、

d_time Win32FILETIME2d_time(ulong wft)
{
    wft -= 116444736000000000;    // 1970年までおろす。
    return wft * TicksPerSecond / 10000000;
}
という変換関数が書き下せます。Phobos内にはFILETIMEをd_timeに変換する部分があるのですが一度SYSTEMTIMEにしてから変換をかけています。理論上、FILETIMEからSYSTEMTIMEにするとミリ秒に丸められちゃうんですよね。そんな細かく使っているか確かめてもいませんし、神経質になるほどの粒度ではないんですが。

PR

2008/03/01 Programming Comment(0)

COMMENT

COMMENT FORM

NAME
MAIL
WEB
TITLE
COMMENT
PASSWORD

カテゴリー
 
 
 
最新記事
 
(05/20)
(08/13)
(06/15)
(03/28)
(05/31)
 
 
ブログ内検索
 
 
 
カレンダー
 
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
 
 
アーカイブ
 
 
 
最新TB
 
 
 
最新CM
 
 
 
リンク
 
 
 
Feed
 
 
 
注意点
 

英字のみのコメントは拒否しています。スパムの排除のためご理解をお願いいたします。(でも結構スルーされてしまいます。たまに掃除していますがご容赦のほどを。)

 
 
カウンター
 
 
 
アクセス解析