Datumsdifferenz
30.01.2004 15:57:14
Rolf, Lgh.
mit der nachstehenden Funktion wird die Differenz
zweischen zwei Daten in Tagen berechnet.
- Schalttage bleiben unberücksichtigt
- volle Jahre werden immer mit 365 Tagen berechnet
Warum benutzt man die Zahlen -60,+ 59 bzwe *1460, /1461?
Ich bin für jeden Tipp dankbar!
Gruß Rolf
Function ZeitDifferenz(dateVonDatum As Variant, dateBisDatum As Variant) As Integer
'Integer
Dim iBJahre As Integer
Dim iBMonate As Integer
Dim iBTage As Integer
Dim iVJahre As Integer
Dim iVMonate As Integer
Dim iVTage As Integer
'Real
Dim rBisZeit As Double
Dim rVonZeit As Double
'Datum
Dim dateRechBisZ As Variant
Dim dateRechVonZ As Variant
iVJahre = Year(dateVonDatum)
iVMonate = Month(dateVonDatum)
iVTage = Day(dateVonDatum)
iBJahre = Year(dateBisDatum)
iBMonate = Month(dateBisDatum)
iBTage = Day(dateBisDatum)
If (iVTage = 29) And (iVMonate = 2) Then
iVTage = 1
iVMonate = 3
End If
If (iBTage = 29) And (iBMonate = 2) Then
iBTage = 28
iBMonate = 2
End If
dateRechVonZ = DateSerial(iVJahre, iVMonate, iVTage)
dateRechBisZ = DateSerial(iBJahre, iBMonate, iBTage)
rVonZeit = ((dateRechVonZ - 60) * 1460 / 1461) + 59
rVonZeit = Abs(Int(-rVonZeit))
rBisZeit = ((dateRechBisZ - 60) * 1460 / 1461) + 59
rBisZeit = Abs(Int(-rBisZeit))
ZeitDifferenz = rBisZeit - rVonZeit + 1
End Function