Zeitdauer in Sekunden zwischen zwei Timestamps ermittlen.

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Peter329.

    Zeitdauer in Sekunden zwischen zwei Timestamps ermittlen.

    Hi,

    ich habe zwei Timestamps

    VB.NET-Quellcode

    1. Dim CurrentTimeStampOld As DateTime
    2. Dim CurrentTimeStampNew As DateTime


    Nun würde ich gern die Zeitdauer zwischen den beiden Timestamps in Sekunden wissen.

    Ich kann einen Timestamp in Sekunden seit Mitternacht etwa durch die Formel

    Seconds = ((HH * 60 + MM) * 60 + SS)

    ermitteln. Die Differenz der "Seconds" ist dann meine Dauer.

    Das klappt aber nicht, wenn das Intervall der Timestamps Mitternacht enthält. Da müsste man die Tage dazu nehmen. Und wenn man Monats- und Jahreswechsel berücksichtigen wollte, dann wird da noch viel schwieriger.

    Zugegeben, das sind extreme Sonderfälle ... aber meine Routine muss eben wasserdicht sein!

    Gibt es eine Möglichkeit die Zeitdauer in Sekunden einfacher zu ermitteln?

    LG
    Peter
    Wow ... das klingt doch schon mal super!

    Das hab ich jetzt versucht. Aber es gibt noch ein kleines Problem:

    VB.NET-Quellcode

    1. Dim TS As TimeSpan = tsNew - tsOld
    2. Dim intElapsed As Integer = TS


    liefert

    Fehler 1 Der Wert vom Typ "System.TimeSpan" kann nicht in "Integer" konvertiert werden.

    Nach einer Methode "ToInt" hab ich bisher vergeblich gesucht ...

    Gibt's eine Lösung dafür?

    LG
    Peter

    Peter329 schrieb:

    Gibt's eine Lösung dafür?
    1. Option Strict On
    und 2. mach mal nach Dim intElapsed = TS einen Punkt
    Dim intElapsed = TS.
    und höre auf Dein Studio.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ok, der Wink mit dem Zaunpfahl war ausreichend.

    VB.NET-Quellcode

    1. Dim TS As TimeSpan = tsNew - tsOld
    2. Dim intElapsed As Integer = TS.Seconds


    Ist das jetzt die Anzahl der GESAMTEN Sekunden zwischen den Timestamps ... oder wird das in der Form SEKUNDEN MINUTEN STUNDEN zurückgegeben ... ? Dann müsste das wie folgt lauten ...

    VB.NET-Quellcode

    1. Dim intElapsed As Integer = TS.Seconds + TS.Minutes * 60 + TS.Hours * 3600


    Meine Testfälle laufen nur ein paar Sekunden ... da kann ich das nicht so ohne weiteres testen.

    LG
    Peter
    Ok, danke! Dann ist ja jetzt alles klar! mit .TotalSeconds erhält man also die Gesamtzahl der Sekunden. Und zwar im Format DOUBLE.

    Die Sache funktioniert hervorragend! Supi! Also herzlichen Dank für eure Hife und Nachsicht mit einem misstrauischen Fragesteller! *grins*

    LG
    Peter

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