#1 24. August 2009 jahr, monate und tage in eine ausgabe hallo, ich benutze vb2005 ich habe ein problem mit DateDiff und zwar kann ich die zeitdifferenz in jahren, monaten bzw tagen ausgeben lassen aber ich möchte dass die zeitdifferenz in 3 elementen gleichzeitig angezeigt wird sprich: zb. es sind so viel zeit vergangen: 3 jahre, 4 monate, 2 tage wie kriege ich diese drei elemente ("d"; "m" und "yyyy") als ein datum ausgegeben??? danke schon mal für die vorschläge :] + Multi-Zitat Zitieren
#2 24. August 2009 AW: jahr, monate und tage in eine ausgabe Schaust du hier MSDN Format Function. Sollte dann so funktionieren Beispiel: Code: Dim Date1 As Date Dim Date2 As Date Dim FormatStr As String FormatStr = Format(Date2 - Date1, "d.m.yyyy") Mfg Rushh0ur + Multi-Zitat Zitieren
#3 25. August 2009 AW: jahr, monate und tage in eine ausgabe Ich gehe mal davon aus, du merkst dir ja deine 3 jahre, 4 monate und 2 tage oder? wenn ja mach doch einfach 3 Variablen Code: Dim year as String Dim month as String Dim Day as String Dim Date as String Date = year & "." & month & "." & day So hätts ich mal ganz spontan gemacht greetz + Multi-Zitat Zitieren
#4 25. August 2009 AW: jahr, monate und tage in eine ausgabe hhmmm....ich bekomme dann "überlauf" bzw Luafzeitfehler Nr.6 also formatStr(heutiges Datum - eingegebenes Datum, "d-m-yyy") dieser fehler tritt auf, wenn man falsch deklariert ich hab nun das mit dem variant genommen....sollte dann aufjedenfall laufen kommt dennoch immer der selber fehler Nr6 weiss nicht ob das vielleicht der richtiger weg ist noch mal.....^^ wenn ich ein altes datum eingebe: zb 24.07.2008, dann wird es mit nem aktuellem datum vergliechen und dann sollte sowas erscheinen: vergangen ist: 1 Jahr, 1 Monat, 1 Tag + Multi-Zitat Zitieren
#5 26. August 2009 AW: jahr, monate und tage in eine ausgabe Hallo Mr. y, wenn man ein Date von einem Date abzieht bekommt man eine Timespan. Diese kann man aber nicht in ein Datum wandeln, folglich auch nicht als Datum anzeigen. Wenn ich den 1.1.2000 vom ersten 1.1.2009 abziehe, bekomme ich als Ergebnis 9 Jahre. Willst Du dann sowas wie den "00.00.0009" anzeigen ? Naja, wie auch immer. Nichts für ungut. Ich denke, was Du willst ist das: VB Code: Dim startDate As Date = CDate("2009-08-01") Dim endDate As Date = CDate("2010-10-05") Dim tmp As Date = startDate Dim years As Integer = DateDiff(DateInterval.Year, tmp, endDate) tmp = tmp.AddYears(years) Dim month As Integer = DateDiff(DateInterval.Month, tmp, endDate) tmp = tmp.AddMonths(month) Dim days As Integer = DateDiff(DateInterval.Day, tmp, endDate) Debug.WriteLine(String.Format("Years: {0}", years)) Debug.WriteLine(String.Format("Month: {0}", month)) Debug.WriteLine(String.Format("Days: {0}", days)) C# Code: System.DateTime startDate = (System.DateTime)"2009-08-01"; System.DateTime endDate = (System.DateTime)"2010-10-05"; System.DateTime tmp = startDate; int years = DateDiff(DateInterval.Year, tmp, endDate); tmp = tmp.AddYears(years); int month = DateDiff(DateInterval.Month, tmp, endDate); tmp = tmp.AddMonths(month); int days = DateDiff(DateInterval.Day, tmp, endDate); Debug.WriteLine(string.Format("Years: {0}", years)); Debug.WriteLine(string.Format("Month: {0}", month)); Debug.WriteLine(string.Format("Days: {0}", days)); Hoffe das hilft. BG MaxDev + Multi-Zitat Zitieren