Textbox.Text in Datum umwandeln?
Hallo, ich muss die Differenz eines in eine Textbox eingegebenen Wertes zu einem vorgegebenen Datum errechnen und entsprechend auswerten. Das geht hervorragend mit DateAndTime, DateAdd und DateDiff. Nun liegt mir der wert aus der TextBox folgendermaßen vor: "160401" anstatt "01.04.16". Wie kann ich diesen term nach dd.MM.yy umwandeln, damit ich damit rechnen kann? Vielen Dank an alle, die es wissen und mir sagen wollen :-)
2 Antworten
Am einfachsten mit der Date.ParseExact-Methode:
Dim d As Date = Date.ParseExact(TextBox1.Text, "yyMMdd", Globalization.CultureInfo.CurrentCulture)
Da kannst du das Format angeben und dein Text wird entsprechend geparsed. Die von dir genannten Methoden solltest du vergessen, das sind Überbleibsel aus VB6 und bringen dir in .NET keine Vorteile. Das Date-Objekt bietet, wie du siehst, deutlich bessere Möglichkeiten dafür.
Wahrscheinlich schon zu spät aber als kleinen Zusatz bitte nicht direkt DateTime.ParseExact sondern besser DateTime.TryParseExact. Besonders bei einem Textfeld.
(Beispiel gibt's auf MSDN)
Mittels regulären Ausdrücken oder Substring die einzelnen Stellen auslesen und geordnet im String anordnen wär am einfachsten.
Das wäre eher am umständlichsten. .NET bietet für Date eine ParseExact-Methode, bei der das Format angegeben werden kann.