Textbox in Timespan konvertieren

Hallo,

ich hätte gerne dass ich die zeit wenn das programm umschalten soll später noch einstellen kann und diese zeit dann speichern kenn z.b. in eienr textbox
leider funktioniert dies nicht so wie ich es jetzt habe

das textbox speichern funktioniert gut aber die konvertierung von textbox -> string -> timespan funktioniert nicht da
„Die Zeichenfolge nicht als gültiger TimeSpan erkannt wurde“

ich hab schon probiert in der textbox „19,55,00“ bzw "19:55:00 einzugeben aber leider ohne ergebniss


Dim ap As New TimeSpan ’ aps = anfang probealarmzeit
Dim aps As String = Einstellungen.probezeita.Text ’ aps = anfang probealarmzeit - string
ap = TimeSpan.Parse(aps)

Dim ep As New TimeSpan ’ ep = ende probealarmzeit
Dim eps As String = Einstellungen.probezeite.Text ’ eps = ende probealarmzeit - string
ep = TimeSpan.Parse(eps)

If (DateTime.Now.TimeOfDay >= ap And _
DateTime.Now.TimeOfDay

Falsches Brett?
Hallo,

um welches Visual Basic geht es?

Timespan kenne ich vom Hören, mein Kollege arbeitet damit in VB.NET.

Wenn es um VB2003 oder jünger geht, werden dir die Excel-Experten hier eventuell nicht helfen können. Mein VB6 kennt ebenfalls kein Timespan.

Das Brett für VB.NET (2003, 2005, 2008, 2010) ist drei Zeilen höher.

Gruß Rainer

Hallo Fritz,

mal abgesehen davon das du im falschen Brett, würde ich die Sache anders angehen :wink:

Wenn du einen Timespan neu instanzierst kannst du ihr ja gleich die Daten mitgeben :smile: Desweiteren würde ich den Vergleich über die Compare Methode umsetzen. Ohne es nun zu testen würde ich es wie folgt lösen :smile:

'Deine Anfangszeit steht zum Bsp in Textbox1 und deine Endzeit in 
'Textbox2. Die Daten liegen dort wie folgt vor
'19:55:07 (Stunden:Minuten:Sekunden)

Private Sub Init()
 'Zuweisen der Daten
 Dim ap As New TimeSpan(TextBox1.Text.Split(":")(0), TextBox1.Text.Split(":")(1), TextBox1.Text.Split(":")(2))
 Dim ep As New TimeSpan(TextBox2.Text.Split(":")(0), TextBox2.Text.Split(":")(1), TextBox2.Text.Split(":")(2))
 'Vergleichen der Daten
 Dim Result = ap.CompareTo(ep)
 'Result=-1 -\> Textbox2 Wert ist höher 
 'Result=0 -\> Textbox2 Wert ist gleich
 'Result=1 -\> Textbox2 ist kleiner
 'Result kannst du nun hier auswerten
End Sub

MfG Alex

Hallo!
Bei solchen Fragestellungen hilft es immer ungemein, in der Klassendokumentation nachzuschauen statt blind herumzuprobieren:
http://msdn.microsoft.com/de-de/library/se73z7b9.aspx

Die Angabe in der Form hh:mm:ss ist also absolut gültig und wird von TimeSpan.Parse() auch korrekt verarbeitet.

Falls bei Dir dennoch eine FormatException geworfen wird, überprüfe bitte im Debugger, welchen Wert aps und eps haben.

Gruß,
Martin