VB Zeit-input, einen besseren Weg, es zu tun?

Arbeiten auf ein handliches Programm für meinen Chef bei der Arbeit, wie ein Sommer-Projekt in den zwischen den Semestern sowohl das Leben leichter machen für Sie, und zu üben und meine Fähigkeiten verbessern. Absicht ist es, die es Ihr erlauben, schnell und einfach berechnen die Stunden und Minuten die person arbeitete. Das Formular selbst hat eine Reihe von text-Boxen für die Clock in und Clock out-Zeit-für jeden Tag der Woche. Derzeit versucht es zu konvertieren, die txtbox text in eine Date-variable, dann .Subtrahieren()'s der Anfang vom Ende und speichert es in einer durch die gesamten Variablen, die angezeigt wird, am unteren Rand des Formulars. Ich kann mir nicht helfen, aber denke, es gibt einen besseren Weg zu gehen über das tun dies, und ich bin mir absolut sicher, dass wir mit den untenstehenden code-block, der 21-mal (7 Tage, 3 Schichten) ist ineffizient.

    Dim StartTime As Date
    Dim EndTime As Date
    Dim Worked As System.TimeSpan
    Dim WorkedTotal As System.TimeSpan
    If chkFirst.Checked = True Then
            StartTime = CDate(txtMonStart.Text)
            EndTime = CDate(txtMonEnd.Text)
            EndTime = EndTime.AddHours(12)
            Worked = EndTime.Subtract(StartTime)
            lblMonWork.Text = Worked.ToString()
            WorkedTotal += Worked

Derzeit funktioniert es, meistens. Hat der Benutzer zur Eingabe des ":" in der Zeit-input, und wenn die Summe mehr als 24 Stunden, es zeigt eine Tag-Spalte (40 h 12 min in der Woche zeigt, wie 1.16:12). Ich würde gerne beseitigen diese beiden ungeplanten features und lassen meine überprüfung der Eingaben stattfinden, wenn die änderungen den Fokus auf ein anderes Feld. Eine änderung bgcolor deuten wäre eine ungültige Eingabe.

Irgendwelche guten Ideen?

InformationsquelleAutor Syliddar | 2010-05-02
Schreibe einen Kommentar