我需要在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