【问题标题】:How to give the dtpicker date – 1?如何给 dtpicker 日期 - 1?
【发布时间】:2009-08-25 05:41:51
【问题描述】:

现在使用 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 代码帮助。

【问题讨论】:

  • I DateToString 一个你自己定义的函数?然后,您可能希望更改其内容以使用改进的 .NET 日期函数。 Date.ToShortDateString() 以区域设置中短日期格式指定的格式返回。

标签: vb.net vb6 datepicker


【解决方案1】:

值的类型为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)

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 当我输入 .addday(-1).tostring 时按 dtpicker1.value。(之后按无显示)。它显示错误
    【解决方案3】:

    有点不确定您要做什么,但对于以下解决方案,我假设 -1 您是说您希望获得日期前一天。 如果是这样,那么使用

    dtpicker1._Value.AddDays(-1).ToString
    

    最重要的是,如果你想格式化输出的字符串,你可以通过使用格式字符串来做到这一点,例如

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

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

    【讨论】:

    • 当我输入 .addday(-1).tostring 时按 dtpicker1.value。(之后按无显示)。它显示错误
    猜你喜欢
    • 2015-11-30
    • 2021-07-23
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    相关资源
    最近更新 更多