Преобразование даты из TextBox в дату в ASP.Net - PullRequest
1 голос
/ 29 ноября 2011

Я хочу получить разницу дат от Two TextBox, скажем до и от даты ..

Мой код здесь

Dim ts As TimeSpan            
ts = CDate(txtTo.Text) - CDate(txtFrom.Text)
txtDays.Text = ts.Days() + 1

но этот код выдает ошибку вроде этой

Conversion from string "16/11/2011" to type 'Date' is not valid.

Ответы [ 4 ]

7 голосов
/ 29 ноября 2011

В общем, старайтесь избегать использования старых функций VB, таких как CDate. В этом случае вам следует использовать метод Parse:

Dim ts As TimeSpan
ts = DateTime.Parse(txtTo.Text) - DateTime.Parse(txtFrom.Text)

Или, если вы заранее знаете формат даты:

Dim fmt As String = "dd/MM/yyyy"
Dim ts As TimeSpan
ts = DateTime.ParseExact(txtTo.Text, fmt, Nothing) - DateTime.ParseExact(txtFrom.Text, fmt, Nothing)
3 голосов
/ 29 ноября 2011

Попробуйте использовать ParseExact, например:

    Dim s As String = txtFrom.Text.trim
    Dim pattern As String = "dd/MM/yyyy"
    Dim parsedDate As Date = Date.ParseExact(s, pattern, Nothing)

Таким образом, вы можете указать формат используемой строки.

Более прямо к вашему примеру:

Dim pattern As String = "dd/MM/yyyy"
ts = Date.ParseExact(txtTo.Text, pattern, Nothing) - Date.ParseExact(txtFrom.Text, pattern, Nothing)
0 голосов
/ 29 ноября 2011

Использовать перегруженную версию функции:

 DateTime value = DateTime.Parse(txtFrom.Text,  new CultureInfo("gu-IN", false));

, где "гу-ин" для гуджарати (Индия)

0 голосов
/ 29 ноября 2011

Вы можете напрямую привести строку к DateTime.Вам необходимо использовать функцию DateTime.Parse для анализа строки в DateTime.

Синтаксис можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...