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

Hallo Philipp,

sorry, aber mit der Timespan-Struktur habe ich noch nichts gemacht. Aber wie man der MSDN-Seite http://msdn.microsoft.com/de-de/library/system.times… entnehmen kann, muss die Struktur wohl in einer der Arten, die auf der Seite unter „Konstruktoren“ angegeben ist, initialisiert werden. Das finde ich in Deinem Code nicht. Vielleicht hilft’s Dir weiter.

Viele Grüße
Dieter

Hallo Fritz92,
ich denke, dass es sich um fehlende Formatierung der Strings handelt.
Etwa so:
Dim Time1, Time2, Time3
Time1 = TimeValue(Text1)
Time2 = TimeValue(Text2)
Time3 = Format(Time1 - Time2,„hh:mm:ss“)

Hiermit wird der Zeitunterschied in Text3 ausgegeben.

Sie können mich auch anrufen, wenn Sie nicht weiterkommen.
Mit freundlichen Grüßen,
Werner Kamphaus
59909 Bestwig

Philipp Fritz

Hi

Speichere die Zeit als Ticks.
> Dim MyDate As DateTime = DateTime.Now
> Dim MySaveString = MyDate.Ticks.ToString()
> Dim MyNewDate As New DateTime(Long.Parse(MySaveString))

Das selbe geht auch für Timespan. Aber DateTime macht die Erklärung leichter.
Viel Erfolg

Timespan ist der falsche Typ (es ist ein Zeitraum)
Du braucht ein DateTime-Objekt zum Speichern eines Zeitpunktes.

Sorry - aber mit Timespan habe ich mich noch nie befasst - bitte frag jemand anderen.

Tut mir leid

Siegfried Möller

Hallo Fritz,

da kann ich dir leider nicht helfen. Du stellst mir eine Frage zu VB.NET. Ich kenne aber nur den Vorgänger und bin inzwischen auf JAVA umgestiegen.

Ich hätte lediglich Vorschläge es anders zu lösen:

  • mehrere Textboxen, in die du die Stunden, Minuten, Sekunden getrennt eingibst
  • oder Dropdowns zum Auswählen - anstatt der Textboxen
  • oder das Parsen selber machen: Split am Delimeter „:“ und dann die Einzelteile entsprechend verarbeiten.

Mit Timeserial() bekommst du in VB ein Zeitformat daraus. Keine Ahnung wie das unter VB.NET konvertiert würde.

Viel Erfolg bei der Lösung deines Problems!

Gruß

Manuel

Hallo Fritz92!
Hier ein Mini C# Programm - funktioniert bei mir tadellos.
lg

static void Main() {
 System.Console.WriteLine("Start...");

 TimeSpan ts;

 ts = TimeSpan.Parse("15:30:01");
 System.Console.WriteLine(ts.ToString());

 System.Console.WriteLine("...Ende");
 System.Console.In.Read();
}