我需要在VB中找到2个日期(以月和日为单位)之间的差异。使用DateDiff()
函数,我没有得到所需的结果,因为DateDiff()
仅减去相应的值。例如:
DateDiff("m", '31/01/2012', '1/02/2012')
返回1个月,这是不正确的。我如何实现这一目标?
答案 0 :(得分:1)
我已经解决了这个问题。我必须编写一个能够满足我需要的功能。算法是:
1)使用DateDiff计算2天之间的差异。 2)存储' dd' 2个不同变量中两个日期的一部分。 3)如果' dd'开始日期大于< dd'结束日期,月份为Step1.value-1,否则月份为step1.value 4)将开始日期增加我们从第3步获得的月数值 5)运行一个循环,从1到31递增开始日期1,直到它等于结束日期。 6)天数值(迭代次数)
代码是:
Dim temp As Date
Dim temp1 As Integer
Dim i As Integer
Dim day1 As Integer
Dim day2 As Integer
temp1 = DateDiff("m", StartDate, EndDate)
day1 = DatePart("d", StartDate)
day2 = DatePart("d", EndDate)
If day1 > day2 Then
temp = DateAdd("m", (temp1 - 1), StartDate)
Month = (temp1 - 1)
Else
temp = DateAdd("m", (temp1), StartDate)
Month = (temp1)
End If
For i = 1 To 31
If temp = EndDate Then Exit For
temp = DateAdd("d", 1, temp)
Next i
Day = (i - 1)