VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/08/22(Fri) 10:46
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe^6: ミリ秒の足し算

> > という代物なのですが、やはり始めの時刻をDate型以外の型で保持しておいて
> > Date型に変換するしかないのでしょうか?
> 「日付型」をヘルプで調べれば、日付型ではミリ秒は格納できないことが分かります。

ちなみに、SWbemDateTimeオブジェクトという物もあります。

これだと、(1601年1月1日以降のデータであれば)100ナノ秒単位の情報までを正確に保持可能です。
また、プロパティの設定によっては、(時刻ではなく)時間として扱うように変更する事も出来ます。

Set o = CreateObject("WbemScripting.SWbemDateTime")
o.SetVarDate Now, True  'VBのDate型を、時差情報付きで格納
o.Microseconds = 123456 'マイクロ秒の部分の情報を修正

y = o.Year              '32bit整数型として取得(年)
m = o.Month             '32bit整数型として取得(月)
d = o.Day               '32bit整数型として取得(日)
h = o.Hours             '32bit整数型として取得(0〜23)
n = o.Minutes           '32bit整数型として取得(0〜59)
s = o.Seconds           '32bit整数型として取得(0〜59)
z = o.Microseconds      '32bit整数型として取得(0〜999999)

v = o.GetFiletime       '64bit整数値を表す文字列として取得(最小単位:100ナノ秒)
x = o.GetVarDate()      'VBの日付型として取得(最小単位:1秒)
f = o.Value             'yyyymmddHHNNSS.mmmmmmsUUU+XXX形式の文字列として取得


ただしこれは WMI系のオブジェクトなので、古いOS環境の場合は、
別途、Windows Management Instrumentation のセットアップが必要です。
(最近のOSなら、標準でWMIが利用できますけれどね)

もし、WMIが無い環境でも使いたいなら、VB標準の Double や 10進型Variant などを
使って、自前で数値←→日時変換処理を書いた方が良いかも知れません。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -