Vergleich von Datum und Zeit Angaben

  • VBScript

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von JayP25.

    Vergleich von Datum und Zeit Angaben

    Hallo liebe Gemeinde,
    seit 2 Monaten arbeite ich nun mit Visual Basic und stehe vor einem "kleinen" oder auch "größeren" Problem.
    Ich schreibe Momentan an einem Management-System. Dort lasse ich Daten von einem Viren-Programm in einen Syslog-Server laufen um diese anschließend in eine Datenbank zu schreiben. Das Problem ist das die Datum/Zeit Angaben die das Virenprogramm übersendet verfälscht sind und ich über eine Zeitdifferenz in Minuten weiter vorgehen möchte.
    Den Code den ich dafür nutze sieht so aus: (mit Beispielwerten)

    Visual Basic-Quellcode

    1. ***Hier arbeite ich Datum und Zeit soweit auf wie ich das haben möchte***
    2. Datumzeit = "inserted: 2012-11-28 09:40:32" //DatumZeit wir er aus der Meldung hervorgeht
    3. DatumZeit = trim(mid(Datumzeit,19,2) &"."& mid(Datumzeit,16,2) &"."& mid(Datumzeit,11,4) &" "& right(Datumzeit,8))
    4. ***Um einen Vergleichswert zu haben hole ich mir nun das aktuelle Datum mit Uhrzeit***
    5. (now wird im Format "11/28/2012 9:40:32 AM" oder "11/28/2012 9:40:32 PM" eingelesen)
    6. Aktuell = Split(now," ") //Splitten in ein Array
    7. In dem Array Aktuell steht nun folgendes:
    8. Aktuell(0) = "11/28/2012"
    9. Aktuell(1) = "9:40:32"
    10. Aktuell(2) = "AM"
    11. ***Datum vom Aktuellen Datum aufbereiten***
    12. Datum = trim(mid(Aktuell(0),4,2) &"."& mid(Aktuell(0),1,2) &"."& right(Aktuell(0),4))
    13. ***Da ich Zeit im 24h Format benötige verarbeite ich nun AM bzw PM***
    14. if Aktuell(2) = "AM" Then
    15. Zeit = Aktuell(1)
    16. else
    17. Zeit = dateadd("n",720,Aktuell(1)) //Wenn Aktuell(2) = "PM", werden 12 Stunden(in Minuten angegeben) dazugerechnetend if
    18. ***Überarbeiten der Länge des Zeitstrings da ich den 8 stellig benötige***
    19. if Len(Zeit) = 7 Then
    20. Zeit = "0" & Zeit // Wenn die Zeit 7 stellig ist 0 vorne anhängen
    21. end if
    22. ***Nun habe ich die Datum und Zeit in benötigten Format und setze diese zusammen***
    23. AktuellDatumZeit = Datum &" "& Zeit
    24. ***Errechnen der Zeitdifferenzausgleich***
    25. Zeitdifferenz = datediff("n",DatumZeit,AktuellDatumZeit)


    Und genau an dieser stelle funktioniert es nicht mehr.

    Fehlermeldung: Typen unverträglich: AktuellDatumZeit
    Kommt wohl daher das ich die Typen hier durcheinander bringe. <-- Das ist der Fehler.
    Das Script, aus dem dieser Auszug stammt, ist ein reines VB-Script.

    Ich versuche das Problem jetzt schon seit einiger Zeit zu lösen.
    An dieser Stelle steht in der Variablen DatumZeit: "28.11.2012 09:40:32"
    und in der Variablen AktuellDatumZeit: "28.11.2012 09:40:32"
    Vom logischen her sollte in der Variablen Zeitdifferenz der Wert "0" stehen.


    Have fun
    Julian

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „JayP25“ ()

    Visual Basic-Quellcode

    1. dim datumzeit, now, Zeitdifferenz
    2. Datumzeit = "inserted: 2012-11-28 09:40:32"
    3. Datumzeit=cdate(mid(datumzeit,10))
    4. now="11/28/2012 9:40:32 PM"
    5. now=cdate(now)
    6. Zeitdifferenz = datediff("n",DatumZeit,now)
    7. msgbox Datumzeit & " | " & now & " | " & Zeitdifferenz & " Minuten"
    8. msgbox FormatDateTime(now,3)' 8-stellige Uhrzeit
    Gruß
    Peterfido

    Keine Unterstützung per PN!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „peterfido“ ()