使用“YYYYMMDD”格式添加日期

时间:2014-11-13 17:57:04

标签: datetime vb6

在VB6中,我试图将日期添加到格式为“YYYYMMDD”的日期。我可以添加这样的日子:

Pull_Date = Need_Date + Val(txtLeadTime.Text)

有效,直到结果天数大于该月的天数。我尝试使用DateAdd,但它不接受YYYYMMDD格式 - 也不接受CDate。

2 个答案:

答案 0 :(得分:0)

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

Dim Need_Date  As String
Dim Pull_Date As Date
Dim tmpDate As Date

Need_Date = "20141113"
tmpDate = CDate(Mid$(Need_Date, 5, 2) & "/" & Right$(Need_Date, 2) & "/" & Left$(Need_Date, 4))

Pull_Date = DateAdd("d", Val(txtLeadTime.Text), tmpDate)
MsgBox Format$(Pull_Date, "yyyymmdd") '// if LeadTime is 25 days, displays 20141208

请注意,如果字符位置Need_Date的格式没有完全按预期格式化,则可以将其解析。

答案 1 :(得分:0)

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

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)

不起作用。好像它和功能一样。