我需要在VB中查找两个日期在几个月和几天之间的差异。使用DateDiff()
函数,我没有得到所需的结果,因为DateDiff()
只减去相应的值。例如:在VB中使用DateDiff()来查找两个日期在几个月和几天之间的差异
DateDiff("m", '31/01/2012', '1/02/2012')
返回1个月,这是不正确的。我如何实现这一目标?
我需要在VB中查找两个日期在几个月和几天之间的差异。使用DateDiff()
函数,我没有得到所需的结果,因为DateDiff()
只减去相应的值。例如:在VB中使用DateDiff()来查找两个日期在几个月和几天之间的差异
DateDiff("m", '31/01/2012', '1/02/2012')
返回1个月,这是不正确的。我如何实现这一目标?
我已经解决了这个问题。我不得不写一个我需要的功能。该算法是:
1)使用DateDiff计算两个月之间的差异。 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)
什么会是期望的结果?你想只在结果天数还是? – Alex
1天,以上例或0个月为例。我想要以月和数据形式的结果。例如:如果开始日期是31/01/2012和结束日期是2012年5月3日,我需要有1个月和5天的答案。 –
尝试使用“d”而不是“m”来获得天数差异 – Bjorn