Zeit in Zeitspanne finden

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Qwert.

    Zeit in Zeitspanne finden

    Hi,
    ich möchte das jemand eine Zeitspanne in eine textbox schreiben kann und das dann eine zeit die aus einer datei ausgelesen wurde, wenn sie zutrifft, in ein ordner kopiert wird.
    Nun habe ich fast alles nur das mit der zeit kriege ich nicht hin!
    Es soll in etwa so aussehen:
    Textbox:
    18:00-19:00

    und rausbekommen habe ich:
    18:05


    wie kriege ich es jetzt hin das er rausfindet das "18:05" dazwischen liegt?

    Danke schon mal im voraus und es tut mir leid wenn irgendwas wegen der foren nicht stimm. Bin Neu hier!

    Qwert
    Willkommen im Forum. :thumbup:
    Wenn Dir das Datum egal ist, muss es überall gleich sein.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. Dim dt1 As DateTime = New DateTime(2012, 1, 1, 18, 0, 0)
    3. Dim dt2 As DateTime = New DateTime(2012, 1, 1, 19, 0, 0)
    4. Dim dtx As DateTime = New DateTime(2012, 1, 1, 18, 5, 0)
    5. If dt1 < dtx AndAlso dtx < dt2 Then
    6. MessageBox.Show("gefunden")
    7. End If
    8. End Sub
    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!
    Zunächst einmal musst Du wissen, dass für absolute Zeitpunkte eine DateTime-Instanz zu verwenden ist, für Differenzen davon gibt es TimeSpan.
    Überlege Dir, was 24.12.2012 MINUS 24.12.2011 ist ==> die Zeitspanne 1 Jahr.
    Doch was ist 24.12.2012 PLUS 24.12.2011 :?: - dies ist leider zum Glück nicht definiert (genau so wie 5°C + 5°C).
    Von DateTime-Instanzen kannst Du TimeSpan-Instanzen subtrahieren,
    zu DateTime-Instanzen kannst Du TimeSpan-Instanzen addieren
    (TimeSpan-Instanzen können positiv und negativ sein).
    So.
    Überleg Dir nun nochmal ganz genau, was Dein Problem ist, und formuliere es neu. :D
    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!
    ich möchte ja keine zeiten herausfinden sondern herausfinden ob eine zeit zwischen der zweier anderen liegt.
    z.B.
    ob 20:00:00

    zwischen 19:00:00 und 21:00:00 liegt.


    außerdem wird die zeit so ausgegeben 00:00:00! Nun brach ich en tipp wie diese so umformen wie die, die du in deinem ersten beistpiel nutzt oder wie ich es hinbekomme das es auch so geht!?

    VB.NET-Quellcode

    1. Dim d1 As New DateTime("20:00:00") ' dies hier musst Du anpassen
    2. Dim d2 As New DateTime("19:00:00") ' dies hier musst Du anpassen
    3. Dim d3 As New DateTime("21:00:00") ' dies hier musst Du anpassen
    4. If d1 > d2 AndAlso d1 < d3 Then
    5. MessageBox.Show("Ja")
    6. End If
    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!
    Deswegen hab ich Dir 3x

    VB.NET-Quellcode

    1. ' dies hier musst Du anpassen
    hinten dran geschrieben. Da musst Du halt mal sehen, wie Du Deinen String in ein DateTime-Objekt konvertieren kannst.
    Such mal mit DateTime.TryParse(DEIN_STRING).
    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!
    Danke ich habe das jetzt so gemacht

    VB.NET-Quellcode

    1. Dim
    2. Z1 As Date = CDate(Z1Time)
    3. Dim Z2 As Date = CDate(Z2Time)
    4. Dim Z3 As Date = CDate(Z3Time)
    5. If Z1
    6. < Z3 AndAlso Z3 < Z2 then
    7. ....

    kann ich mich iregndwie bedanken mit "likes" oder so