Umwandeln / Einlesen zweier Strings die dann als 'Uhrzeit' weiterverarbeitet werden können

  • Guten Morgen,

    habe da mal wieder ein kleines Problem (und finde leider keinen Einstieg / Lösungsansatz).
    Wahrscheinlich nichts Dolles, aber vielleicht kann ja einer der Profis mir eine Idee oder gar Lösung aufzeigen.

    Wie im Subjekt beschrieben habe ich 2 Strings (aus einem textbasierten Log) die ein Datum darstellen - Timestamp Start des Scriptes und Timestamp Ende des Scripts. Ich benötige jetzt die Laufzeit des Scriptes, also Timestamp Ende - Timestamp Start.

    Das Problem ist die Form der gegebenen Datumsangaben.
    Timestamp Start sieht wie folgt aus --- Wed Aug 17 16:05:37 2011
    Timestamp Ende sieht wie folgt aus --- Wed Aug 17 16:07:12 2011

    Wie das im Prinzip geht, ist mir schon klar:
    $x = " Dauer: " & _DateDiff( 's',"2011/08/17 16:05:37", "2011/08/17 16:07:12") & " [sec]"
    Ergebnis sollte also letztlich 95 [sec] sein ...


    Danke schon mal im voraus

    mfg
    ugt100 :wacko:

    Einmal editiert, zuletzt von ugt100 (25. August 2011 um 12:49)

  • Die restlichen Monate musst du noch selber machen.

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Local $Start = "Wed Aug 17 16:05:37 2011"
    Local $Stop = "Wed Aug 17 16:07:12 2011"

    [/autoit] [autoit][/autoit] [autoit]

    Local $x = "Dauer: " & _DateDiff( 's',_YourTimeStamp($Start), _YourTimeStamp($Stop)) & " [sec]"
    ConsoleWrite($x & @CRLF)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _YourTimeStamp($sTimeStamp)
    Local $aTimeStamp = StringSplit($sTimeStamp, " :", 2)
    Local $sMon = ""
    Switch $aTimeStamp[1]
    Case "Jan"
    $sMon = "01"
    Case "Aug"
    $sMon = "08"
    EndSwitch
    Return StringFormat("%s/%s/%s %s:%s:%s", $aTimeStamp[6], $sMon, $aTimeStamp[2], $aTimeStamp[2], $aTimeStamp[4], $aTimeStamp[5])
    EndFunc

    [/autoit]
  • Hallo Funkey,

    danke für die schnelle Antwort. Super gut.
    (Im Prinzip dachte ich mir das schon, dass der String auseinander genommen und neu sortiert wieder zusammengesetzt werden muss)

    Frage am Rande:
    Sollte der markierte Aufruf des Array Elementes hier nicht das 3. Element des Arrays (und nicht das 2.) ausgeben ?
    Return StringFormat("%s/%s/%s %s:%s:%s", $aTimeStamp[6], $sMon, $aTimeStamp[2], $aTimeStamp[2], $aTimeStamp[4], $aTimeStamp[5])

    Nochmals DANKE

    mfg
    ugt100 :rock::thumbup: