在VB6中,我试图将日期添加到格式为“YYYYMMDD”的日期。我可以添加这样的日子:
Pull_Date = Need_Date + Val(txtLeadTime.Text)
有效,直到结果天数大于该月的天数。我尝试使用DateAdd,但它不接受YYYYMMDD格式 - 也不接受CDate。
答案 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)
不起作用。好像它和功能一样。