在VB中使用DateDiff()来查找以月和日为单位的2个日期之间的差异

时间:2014-06-17 13:43:49

标签: vba datetime datediff

我需要在VB中找到2个日期(以月和日为单位)之间的差异。使用DateDiff()函数,我没有得到所需的结果,因为DateDiff()仅减去相应的值。例如:

DateDiff("m", '31/01/2012', '1/02/2012')

返回1个月,这是不正确的。我如何实现这一目标?

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)