2009-08-06 10 views
1

VBScriptのNow()は、CDbl(Now())と呼ばれるときに10,000,000秒の秒精度で時刻を返します。これを使用してCIM_DATETIME formatを返すより正確な実装を作成しようとすると、VBScriptでは特に精度は高いものの、1秒に1回更新するだけではあまり正確ではありません。これは、以下のものから、出力を見ることによって証明することができます。Now()VBScriptの精度

i = 0 
While i < 50 
    gnow = Cdbl(now) 
    result = (gnow - Int(gnow)) 
    WScript.Echo CDate(gnow) 
    WScript.Echo "Iteration " & i & ": " & result 
    WScript.Sleep(100) 
    i = i + 1 
Wend 

私は今、答えることをしようとしている質問は()今呼び出す秒未満のために実行されるVBScriptの与えられた、ある、何時間になりますNow()によって返されましたか?スクリプトインタープリタが起動した時刻、Now()が呼び出された時刻、または何か他のものですか?

答えて

0

"Now()"メソッドが2番目のメソッドに正確に呼び出されたように見えます。それでもやはり通常のメソッド呼び出しです。

+0

David:私は特に1秒以上の正確さを目指しています。これの精度ははっきりしていますが、Now()が返す数値がどのように決定されるかをより深く理解する必要があります。 –

+0

"Now()"関数の精度と一致しない倍精度データ型の精度が表示されています。 – David

+0

代わりに "タイマー"機能を見てください。それは秒未満の解像度を与えるように見えます。 – David