VB2010 Zeit Differenz aus 2 TextBoxen berechnen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    VB2010 Zeit Differenz aus 2 TextBoxen berechnen

    Hallo,

    ich habe folgendes Problemwo ich nicht weiter kommen:

    Ich habe eine kleine Maske gemacht in der 2 Text Boxen sind in dem die aktuelle Uhrzeit nach dem Klick auf einen Butten angezeigt wird.

    Nun hätte ich gern eine weitere Text Box in dem die Differenz angezeigt wird.

    TextBox 1 = Start TextBox = Ende und TextBox 3 soll die Diffenz sein.

    Ich komme einfach nicht auf den Lösungsweg. Bitte helft mir.

    Gruß Steven
    Verwende für Zeitangaben keine TextBoxen, sondern DateTimePicker.

    Eine Zeit-Differenz erhält man durch Subtraktion eines Zeitpunktes von einem anneren. Das ist im richtigen Leben so, und mittm Datentyp DateTime ebenso.

    Allerdings ist eine ZeitDifferenz kein Zeitpunkt, sondern eine Zeitspanne (Datentyp Timespan) und deshalb auch nicht im DateTimepicker anzeigebar. Aber vlt. reicht dir ja ein Label:

    VB.NET-Quellcode

    1. lbTimeDiff.Text = theTimeSpan.ToString

    das Label soll nix wissen, sondern soll einfach theTimespan anzeigen - steht da doch.

    Und theTimespan musst du halt ausrechnen - vermittels Subtraktion zweier DateTimes. Steht übrigens auch da.

    Von TextBoxen rate ich ja ab (steht da auch), denn TextBoxen beinhalten Text. DateTimePicker beinhalten DateTimes, deswegen nimm DateTimePicker.
    Jou.
    @BecksGold85
    Rechne mit DateTime-Objekten, die haben solch Rechenoperationen überlagert, die Differenz zweier DateTime-Objekte ist folgerichtig ein TimeSpan-Objekt.
    Sieh Dir auch die passenden ToString-Formatierungen an.
    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!
    Hallo BecksGold85.

    Bin mir nicht sicher ob SpeedMartin dein anderer Account ist, aber diese Frage wurde hier eben auch schon gestellt.
    Hier nochmal aus dem anderen Thread. Uhrzeit in Minuten ausgeben

    Du musst erstmal beide Werte der Textboxen in ein Datum konvertieren. Danach kannst du diese einfach berechnen.

    Deine Controls

    3x Textbox
    1x Button

    textbox_von
    textbox_bis
    textbox_differenz

    button_berechnen

    Hier ein Beispiel:

    VB.NET-Quellcode

    1. Private Sub buttonClick() Handles button_berechnen.Click
    2. textbox_differenz.Text = (CDate(textbox_bis.Text) - CDate(textbox_von.Text)).ToString()
    3. End Sub


    Wenn du jetzt 12:40:40 und 12:40:59 eingibst, kommt 00:00:19 als Ergebnis raus.

    Um NUR die Sekunden anzeigen zu lassen, musst du ".ToString()" durch ".ToString("ss")" ersetzen.

    Das gleiche gilt für Minuten und Stunden per HH und mm :)

    Mfg

    // EDIT: Bitte beachte die Groß- und Kleinschreibung bei den Formatierungsparametern.

    Hier ein kleiner Link dazu :)

    msdn.microsoft.com/de-de/library/8kb3ddd4(v=vs.110).aspx

    NXGENMeteora schrieb:

    VB.NET-Quellcode

    1. textbox_differenz.Text = (CDate(textbox_bis.Text) - CDate(textbox_von.Text)).ToString()
    Wie willst Du in diesem Psalm einen Fehler finden, der z.B. seine Ursache in einer falschen Text-Eingabe hat?
    Trenne GUI und Daten, führe jede einzelne Konvertierung in einer separaten Code-Zeile durch und nutze dafür je eine separate Variable.
    Und nimm

    VB.NET-Quellcode

    1. dt = DateTime.TryParse(...)
    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!