Also ich habs jetzt so probiert, dass ich den Monat rausgenommen habe und stattdessen Wochen, aber irgendwie häng ich noch am selben Problem...
Solange es 0 Jahre sind, ist alles kein Problem, doch ab einem Jahr wird das Jahr mit angezeigt, jedoch zählen die Wochen weiterhin hoch, z.B. 19 Jahre, 955 Wochen,...
Ich weiß aber auch nicht wie ich es verhindern kann, da ich nicht weiß ob ich nun durch 52 oder 53 Teilen muss :/
So sieht man aktueller Quelltext dazu aus:
Delphi-Quellcode:
function diff(Datum: TDateTime): string;
var
Differenz, jetzt: TDateTime;
jahre, monate, tage, h, m, s, ms, woche: Word;
begin
result := '';
jetzt := Now;
Differenz := jetzt - Datum;
jahre := InJahren(Datum, Now);
woche := WeeksBetween(jetzt, Datum);
DecodeTime (Differenz, h, m, s, ms);
tage := Trunc(Differenz);
if woche <> 0 then
tage := tage mod 7;
if Jahre <> 0 then result := InttoStr(Jahre) + ' Jahre ';
if woche <> 0 then result := result + InttoStr(woche) + ' Woche ';
if tage <> 0 then result := result + InttoStr(tage) + ' Tage ';
if h <> 0 then result := result + InttoStr(h) + ' Stunden ';
if m <> 0 then result := result + InttoStr(m) + ' Minuten ';
if s <> 0 then result := result + InttoStr(s) + ' Sekunden ';
end;
Wäre gut wenn mir noch jemand helfen könnte, dass mit den Sekunden hochrechnen bekomme ich irgendwie ni so ganz hin, daher hänge ich immer noch an meinem eigenen Quelltext