PDA

Vollständige Version anzeigen : Datum mit Jahren addieren ???


freak7
28.06.2001, 11:32
hi,
wie kann ich ein ganz spezielles Datum(Bsp. 25.05.2001) mit 6 Jahren addieren, d.h. das dann 25.05.2007 rauskommt ????
weiterhin will ich dann die Anzahl der Tage bis heute rausbekommen, mit Datdiff(das is klar), aber ich will das dann nicht nur die Tage (3453 Tage) sondern nur der Rest in tagen (5 jahre und 245 tage)ausgegeben wird??? wie geht das ????

marmic55
28.06.2001, 11:54
Hallo,

hier einige Datumsfunktionen aus meiner Sammlung. Vielleicht helfen die weiter.
Am besten, alles nachfolgende kopieren und in ein Modul bringen:
==========================================


Function VergTage(datumkleiner As Variant, datumgroesser As Variant) As Variant
On Error GoTo VergTage_ERR

VergTage = DateDiff("d", datumkleiner, datumgroesser)

VergTage_EXIT:
Exit Function


VergTage_ERR:
Select Case err.Number
Case Else
MsgBox err & " Fehler - (Prozedur 'VergTage') " & err.Description & "(" & err.Number & ")"
Resume VergTage_EXIT
End Select

End Function

Function VergMonate(datumkleiner As Variant, datumgroesser As Variant) As Variant
On Error GoTo VergMonate_ERR

VergMonate = DateDiff("m", datumkleiner, datumgroesser)
VergMonate_EXIT:
Exit Function


VergMonate_ERR:
Select Case err.Number
Case Else
MsgBox err & " Fehler - (Prozedur 'VergMonate') " & err.Description & "(" & err.Number & ")"
Resume VergMonate_EXIT
End Select

End Function

Function VergJahre(datumkleiner As Variant, datumgroesser As Variant) As Variant
On Error GoTo Vergjahre_ERR

VergJahre = DateDiff("yyyy", datumkleiner, datumgroesser)

Vergjahre_EXIT:
Exit Function


Vergjahre_ERR:
Select Case err.Number
Case Else
MsgBox err & " Fehler - (Prozedur 'Vergjahre') " & err.Description & "(" & err.Number & ")"
Resume Vergjahre_EXIT
End Select

End Function

Function VergQuartale(datumkleiner As Variant, datumgroesser As Variant) As Variant
On Error GoTo VergQuartale_ERR

VergQuartale = DateDiff("q", datumkleiner, datumgroesser)

VergQuartale_EXIT:
Exit Function


VergQuartale_ERR:
Select Case err.Number
Case Else
MsgBox err & " Fehler - (Prozedur 'VergQuartale') " & err.Description & "(" & err.Number & ")"
Resume VergQuartale_EXIT
End Select

End Function

Function VergWochen(datumkleiner As Variant, datumgroesser As Variant) As Variant
On Error GoTo VergWochen_ERR
VergWochen = DateDiff("ww", datumkleiner, datumgroesser)
VergWochen_EXIT:
Exit Function


VergWochen_ERR:
Select Case err.Number
Case Else
MsgBox err & " Fehler - (Prozedur 'VergWochen') " & err.Description & "(" & err.Number & ")"
Resume VergWochen_EXIT
End Select

End Function

Function Alter(datumkleiner As Variant) As Variant
On Error GoTo Alter_ERR

Alter = (Date - datumkleiner) / (365.25 - 0.5)
Alter_EXIT:
Exit Function


Alter_ERR:

Select Case err.Number
Case Else
MsgBox err.Number & "Fehler - " & err.Description & _
"(" & err.Number & ") in ' Alter '"
Resume Alter_EXIT
End Select

End Function


Function Umwandeln(Datum As Variant) As Variant
On Error GoTo Umwandeln_ERR

Umwandeln = Format(Datum, "\#m\/d\/yyyy\#")

Umwandeln_EXIT:
Exit Function


Umwandeln_ERR:
Select Case err.Number
Case Else
MsgBox err.Number & "Fehler - " & err.Description & _
"(" & err.Number & ") in ' Umwandeln '"
Resume Umwandeln_EXIT
End Select

End Function

Function TageImMonat(dteDatum As Date)
On Error GoTo TageImMonat_ERR

Dim intTage As Integer

' Einen Monat hinzufügen; Tagesdaten voneinander
' subtrahieren, um die Differenz zu ermitteln.
' Aufrufmöglichkeiten
' intTage = TageImMonat(#4/1/96#)
' intTage = TageImMonat("1.1.00")
' intTage = TageImMonat("1. Januar 1996")
intTage = DateSerial(Year(dteDatum), Month(dteDatum) + 1, Day(dteDatum)) _
- DateSerial(Year(dteDatum), Month(dteDatum), Day(dteDatum))
TageImMonat = intTage

TageImMonat_EXIT:
Exit Function


TageImMonat_ERR:

Select Case err.Number
Case Else
MsgBox err.Number & "Fehler - " & err.Description & _
"(" & err.Number & ") in ' TageImMonat '"
Resume TageImMonat_EXIT
End Select

End Function

Function AddierenMonate(datum1 As Date, zahl As Integer)
On Error GoTo AddierenMonate_ERR

' Aufruf: modDatum.AddierenMonate("12.02.00", 3)

AddierenMonate = DateAdd("m", zahl, datum1)

AddierenMonate_EXIT:
Exit Function


AddierenMonate_ERR:

Select Case err.Number
Case Else
MsgBox err.Number & "Fehler - " & err.Description & _
"(" & err.Number & ") in ' AddierenMonate '"
Resume AddierenMonate_EXIT
End Select

End Function

Function AddierenTage(datum1 As Date, zahl As Integer)
On Error GoTo AddierenTage_ERR

AddierenTage = DateAdd("d", zahl, datum1)
AddierenTage_EXIT:
Exit Function


AddierenTage_ERR:


Select Case err.Number
Case Else
MsgBox err.Number & "Fehler - " & err.Description & _
"(" & err.Number & ") in ' AddierenTage '"
Resume AddierenTage_EXIT
End Select

End Function

Function AddierenQuartale(datum1 As Date, zahl As Integer)
On Error GoTo AddierenQuartale_ERR

AddierenQuartale = DateAdd("q", zahl, datum1)

AddierenQuartale_EXIT:
Exit Function


AddierenQuartale_ERR:


Select Case err.Number
Case Else
MsgBox err.Number & "Fehler - " & err.Description & _
"(" & err.Number & ") in ' AddierenQuartale '"
Resume AddierenQuartale_EXIT
End Select

End Function

Function AddierenWochen(datum1 As Date, zahl As Integer)
On Error GoTo AddierenWochen_ERR

AddierenWochen = DateAdd("ww", zahl, datum1)

AddierenWochen_EXIT:
Exit Function


AddierenWochen_ERR:


Select Case err.Number
Case Else
MsgBox err.Number & "Fehler - " & err.Description & _
"(" & err.Number & ") in ' AddierenWochen '"
Resume AddierenWochen_EXIT
End Select

End Function

Function AddierenJahre(datum1 As Date, zahl As Integer)
On Error GoTo AddierenJahre_ERR

AddierenJahre = DateAdd("yyyy", zahl, datum1)

AddierenJahre_EXIT:
Exit Function


AddierenJahre_ERR:


Select Case err.Number
Case Else
MsgBox err.Number & "Fehler - " & err.Description & _
"(" & err.Number & ") in ' AddierenJahre '"
Resume AddierenJahre_EXIT
End Select

End Function
========================================

Aus Zeitgründen kann ich den letzten Teil der Frage nicht beantworten (hier müsste ich selbst noch einmal etwas tüfteln).

Gruß

Michael

kama
28.06.2001, 12:36
zu1
=DatAdd("jjjj";6;[Datum])
zu2
=DatDiff("jjjj";[Datum1];[Datum2])-1 & " Jahre " & DatDiff("t";"01.01." & Format([Datum2];"jjjj");[Datum2]) & " Tage"

freak7
28.06.2001, 13:19
ey klasse du hast's wirklich voll drauf.
Hast mir wirklich sehr viel weitergeholfen !!

Basti

freak7
28.06.2001, 14:24
es klappt leider noch net ganz !!
--Restjahre: DatDiff("jjjj";Datum();[Jahre_addieren])-1 & " Jahre " & DatDiff("t";[Kundendaten]![Kontoeroeffnung am] & Format(Datum();"jjjj");Datum()) & " Tage"--
das ist der Quelltext, es kommt ein falsches Ergebnis raus !!!
man erhällt die Tage zw. der Kontoeröffnung und dem heutigen Tag, aber wenn die Kontoeröffung z.B. am 26.06. war dann wird mir 2 Tage ausgegeben, obwohl es ja 363 sind!!!!

freak7
28.06.2001, 20:08
Kama ?? kannst mir zufällig nochmal helfen??
oder vielleicht jemand anders ???

basti

kama
28.06.2001, 21:44
Tja,
aus der Hüfte geschossen trift man leider nicht so genau
habe jetzt auch keine Zeit in 6 Stunden geht mein Fliger

Versuchsmal hier: http://www.microsoft.com/IntlKB/Germany/Support/kb/D37/D37560.HTM

Denke das wird diene Probleme beheben,
so long