Hi,
Zitat von
Uncle Cracker:
... aber WeeksBetween zählt immer weiter...
kein Wunder, wenn du als Zeitspanne für WeeksBetween wieder die Originalzeitspanne (Jetzt, Datum) verwendest. Du musst die untere Grenze des Intervalls weiterschieben:
Delphi-Quellcode:
function AgeStr(dt: TDateTime): String;
var
dtNow: TDateTime;
iYears, iWeeks, iDays, iHours, iMinutes, iSeconds: Integer;
begin
dtNow := Now;
if dt < dtNow then
begin
iYears := YearsBetween(dtNow, dt);
dt := IncYear(dt, iYears);
iWeeks := WeeksBetween(dtNow, dt);
dt := IncWeek(dt, iWeeks);
iDays := DaysBetween(dtNow, dt);
IncDay(dt, iDays);
iHours := HoursBetween(dtNow, dt);
IncHour(dt, iHours);
iMinutes := MinutesBetween(dtNow, dt);
IncMinute(dt, iMinutes);
iSeconds := SecondsBetween(dtNow, dt);
Result := '...';
end else Result := '';
end;
Getippt und nicht getestet.
Freundliche Grüße