2012-01-30 5 views
9

ミリ秒で時間を取得したい 現在Timer()メソッドを使用していますが、2番目までのアクセスを提供しています アイデアはありますか?VBScriptを使用してミリ秒で時間を検索

私は二ミリ秒に変換したくないことを確認してくださいが、実際のタイマー機能では、ミリ秒

答えて

13

で取得したいあなたにミリ秒と秒を与えます。返された値の整数部分は、午前0時からの秒数で、小数部分がミリ秒に変換することができます - ちょうどMBUの答えに応じビル1000

t = Timer 

' Int() behaves exacly like Floor() function, ie. it returns the biggest integer lower than function's argument 
temp = Int(t) 

Miliseconds = Int((t-temp) * 1000) 

Seconds = temp mod 60 
temp = Int(temp/60) 
Minutes = temp mod 60 
Hours = Int(temp/60) 

WScript.Echo Hours, Minutes, Seconds, Miliseconds 

' Let's format it 
strTime =   String(2 - Len(Hours), "0") & Hours & ":" 
strTime = strTime & String(2 - Len(Minutes), "0") & Minutes & ":" 
strTime = strTime & String(2 - Len(Seconds), "0") & Seconds & "." 
strTime = strTime & String(4 - Len(Miliseconds), "0") & Miliseconds 

WScript.Echo strTime 
1

を掛け、ここではサブバージョンです。直感的なウィンドウ内のメッセージのためにコードの周りにこれを呼び出すことで、遅延の発生場所を知ることができます。

' *** Debug.Print the time with milliseconds, and a message of your choice 
Private Sub DebugPrintTime(strWhereFrom As String) 
On Error GoTo ErrHandler 

    Dim sglTimer As Single 
    Dim sglWholeSecs As Single 
    Dim Millisecs As Variant ' as a variant, Len() will give the length of string representation of this value 
    Dim Seconds As Variant 
    Dim Minutes As Variant 
    Dim Hours As Variant 
    Dim strTime As String 

    sglTimer = timer 
    sglWholeSecs = Int(sglTimer) 
    Millisecs = Int((sglTimer - sglWholeSecs) * 1000) 
    Seconds = sglWholeSecs Mod 60 
    sglWholeSecs = Int(sglWholeSecs/60) 
    Minutes = sglWholeSecs Mod 60 
    Hours = Int(sglWholeSecs/60) 

    strTime = String(2 - Len(Hours), "0") & Hours & ":" 
    strTime = strTime & String(2 - Len(Minutes), "0") & Minutes & ":" 
    strTime = strTime & String(2 - Len(Seconds), "0") & Seconds & "." 
    strTime = strTime & String(3 - Len(Millisecs), "0") & Millisecs 
    Debug.Print strTime, strWhereFrom 

    Exit Sub 
ErrHandler: 
    MsgBox "Error in Sub DebugPrintTime" & vbCrLf & Err.Description & vbCrLf & strWhereFrom 
    Err.Clear 
End Sub 
関連する問題