Dezimaluhrzeit von Excel umwandeln

  • Ich hatte das Problem, das ich eine Uhrzeit aus Excel ausgelesen habe und nur eine Dezimalzahl erhalten habe.
    Ich habe mich dann mal drangesetzt, und diese Funktion geschrieben, welche die Uhrzeit aus der Dezimalzahl wieder in eine "normale" Darstellung umwandelt. Vielleicht kann das ja jemand gebrauchen.

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION#
    ;===============================================================================
    ;
    ; Name...........: _ExcelTimeToNormalTime
    ; Description ...: Wandelt eine Exceluhrzeit (Dezimal) in eine normale Uhrzeit (hh:mm:ss) um
    ; Syntax.........: _ExcelTimeToNormalTime($i_time)
    ; Parameters ....: $i_time - Die Uhrzeit, wie sie von Excel gespeichert wird
    ; Return values .: Success - Die normale Uhrzeit
    ; Failure - Returns 0 and Sets @Error:
    ; |0 - Kein Fehler
    ; |1 - $i_time ist keine gültige Zahl
    ; Author ........: TheLuBu ([email='LuBu@veytal.com'][/email])
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ;
    ;==========================================================================================
    Func _ExcelTimeToNormalTime($i_time)
    $i_time = StringReplace($i_time, ",", ".")
    If Not IsNumber($i_time) Then Return SetError (1,0,0)
    Return StringRight("0" & Int($i_time * 24), 2) & ":" & StringRight("0" & Int((($i_time * 24) - Int($i_time * 24)) * 60), 2) & ":" & StringRight("0" & Int(((($i_time * 24) - Int($i_time * 24)) * 60 - Int((($i_time * 24) - Int($i_time * 24)) * 60)) * 60), 2)
    EndFunc ;==>_ExcelTimeToNormalTime

    [/autoit]