Как дать дату dtpicker - 1? - PullRequest
       51

Как дать дату dtpicker - 1?

0 голосов
/ 25 августа 2009

Сейчас используется VS 2008

До того, как я использовал VB 6, теперь я обновился до VB 2008.

Код VB6

sdate = DateToString(dtpicker1 - 1)
edate = DateToString(dtpicker2)

Над кодом работает нормально.

После обновления до VB 2008

sdate = DateToString(dtpicker1._Value)
edate = DateToString(dtpicker2._Value)

Если я поставлю

sdate = DateToString(dtpicker1._Value - 1)

Отображается ошибка.

Как мне написать код вроде dtpicker1 - 1

Требуется справка по VB-коду.

Ответы [ 3 ]

1 голос
/ 27 августа 2009

Значение имеет тип Object. Это связано с тем, что значение указателя даты может быть либо действительной датой, либо пустым. Итак, вам нужно:

If IsDate(dtpicker1._Value) Then
  sdate = CDate(dtpicker1._Value).AddDays(-1).ToShortDateString()
End If

Если значение пустое, оно фактически имеет тип System.DBNull, что означает, что для преобразования в строку можно определить две функции с одинаковыми именами, но с разными типами параметров:

Public Function DateToString(ByVal _date As Date) As String
    Return _date.ToShortDateString()
End Function  

Public Function DateToString(ByVal _date As DBNull) As String
    Return "No date selected!"
End Function

Затем вы можете изменить свой предыдущий код так:

Dim theDate As Object
theDate = dtpicker1._Value
If IsDate(theDate) Then
  theDate = CDate(theDate).AddDays(-1)
End If
sdate = DateToString(theDate)
0 голосов
/ 25 августа 2009

Немного неуверен в том, что вы пытаетесь сделать, но для следующего решения я предполагаю, что -1 означает, что вы хотите получить день до даты. Если так, то используйте

dtpicker1._Value.AddDays(-1).ToString

Кроме того, если вы хотите отформатировать полученную строку, вы можете сделать это, используя строку формата, такую ​​как

dtpicker1._Value.AddDays(-1).ToString("dd/MM/yyyy")

, которая напечатает дату как "20/08/2009".

0 голосов
/ 25 августа 2009

Я предполагаю, что вы пытаетесь вычесть один день из значения dtpicker1? Если так, сделайте это:

sdate = DateToString(dtpicker1._Value.AddDays(-1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...