VBScript で 秒未満の時間を計測する (unibon)

1999年08月15日: 新規作成(推定)。

VBScript で秒未満の時間を計測します。
VBScript(や VB/VBA) の Date 型の精度は 1 秒なのですが、Now や DateDiff を使っても秒単位の時間しか計測できません。また、VB/VBA ならば Windows API を Declare すればいくらでも呼ぶことができるのですが、VBScript では COM コンポーネントを呼ぶしかないので、COM コンポーネントの作成と登録が若干面倒です。
しかし VBScript(や VB/VBA もですが)では、Timer 関数があり、これだと若干精度が若干高い(数十ミリ秒程度)なので、使い方が簡単な割にはそこそこの精度が得られて便利です。ただ、表示上はかなり細かな単位まで出ますが、内部的な精度はそれほど高くありません。

使用例:
Dim a
a = Timer()
' ここで時間がかかる処理など
Dim b
b = Timer()
Dim t
t = TimeDiff(a, b)
Call Response.Write("時間差 = " & t & " [秒]" & "<BR>")

Function TimeDiff(ByVal a, ByVal b)
    Dim x
    If b >= a Then
        x = b - a
    Else
        x = (86400 - a) + b ' 真夜中の0時を跨いだときの対処
    End If
    TimeDiff = x
End Function

ASP の目次
ホーム
(このページ自身の絶対的な URL)