如何给dtpicker日期 - 1?

时间:2009-08-25 05:41:51

标签: vb.net vb6 datepicker

现在使用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 个答案:

答案 0 :(得分:1)

值为Object类型。 这是因为datepicker的值可以是有效日期,也可以是空。所以你需要:

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)

答案 1 :(得分:0)

我假设你试图从dtpicker1的值减去一天?如果是这样,请执行以下操作:

sdate = DateToString(dtpicker1._Value.AddDays(-1))

答案 2 :(得分:0)

不确定你想要做什么,但是对于以下解决方案,我假设你用-1表示你想要在日期前一天获得。 如果是,那么使用

dtpicker1._Value.AddDays(-1).ToString

最重要的是,如果要格式化出来的字符串,可以使用格式字符串,例如

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

将打印日期,如“20/08/2009”。