Datetime 使用'添加截止日期的天数;YYYYMMDD';格式

Datetime 使用'添加截止日期的天数;YYYYMMDD';格式,datetime,vb6,Datetime,Vb6,在VB6中,我尝试向格式为“YYYYMMDD”的日期添加天数。我可以添加这样的天数: Pull_Date = Need_Date + Val(txtLeadTime.Text) 该选项有效,直到生成的天数大于当月的天数。我尝试使用DateAdd,但它不接受YYYYMMDD格式—CDate也不接受。您需要将日期字符串转换为日期,以便使用: 请注意,按字符位置解析您的需要日期,如果格式不完全符合预期,则可能会出错。在深入研究这段旧代码后,我发现已经创建了一个转换函数: Public Functio

在VB6中,我尝试向格式为“YYYYMMDD”的日期添加天数。我可以添加这样的天数:

Pull_Date = Need_Date + Val(txtLeadTime.Text)

该选项有效,直到生成的天数大于当月的天数。我尝试使用DateAdd,但它不接受YYYYMMDD格式—CDate也不接受。

您需要将日期字符串转换为日期,以便使用:


请注意,按字符位置解析您的
需要日期
,如果格式不完全符合预期,则可能会出错。

在深入研究这段旧代码后,我发现已经创建了一个转换函数:

Public Function Date_Format_YYYYMMDD(ByVal sDate As String) As String
    If IsDate(sDate) Then
        sDate = Format(sDate, "YYYYMMDD")
    End If

    Date_Format_YYYYMMDD = sDate
End Function
有了这个功能,它真的很容易:

 Pull_Date = Date_Format_YYYYMMDD(Need_Date) + Val(txtLeadTime.Text)
我唯一不明白的是为什么

Pull_Date = Format(Need_Date, "YYYYMMDD") + Val(txtLeadTime.Text)

不起作用。看起来它和函数做的事情是一样的。

使用VB。编写一个函数,将格式更改为VB在某一日期识别的格式,使用DateAdd方法,重新更改格式并返回结果。我不知道它是如何工作的。当我通过“20141113”时,IsDate函数失败。而
Format()
调用只是不必要地将字符串转换为日期,然后显式地返回到字符串。。。假设它适用于任何地区的任何人。字符串不是日期。奇怪的是,昨天我对它进行了多次测试,它似乎正常工作。今天不是。我猜我昨天做错了什么。下面的解决方案对我很有效。
CVDate()
是一个缓慢而过时的函数,只用于帮助旧项目在不升级的情况下工作。您需要的函数是
CDate()
Pull_Date = Format(Need_Date, "YYYYMMDD") + Val(txtLeadTime.Text)