function InJahren(
const Damals, Heute: TDateTime): Integer;
var
DamalsTag, DamalsMonat, DamalsJahr: Word;
HeuteTag, HeuteMonat, HeuteJahr: Word;
begin
if Heute < Damals
then
begin
Result := -1
end
else
begin
DecodeDate (Damals, DamalsJahr, DamalsMonat, DamalsTag);
DecodeDate (Heute, HeuteJahr, HeuteMonat, HeuteTag);
Result := HeuteJahr - DamalsJahr;
if (HeuteMonat <= DamalsMonat)
and (HeuteTag < DamalsTag)
then
begin
Dec (Result);
end;
end;
end;
function diff(Datum: TDateTime):
string;
var
Differenz, jetzt: TDateTime;
jahre, monate, tage, h, m, s, ms : Word;
begin
result := '
';
jetzt := Now;
Differenz := jetzt - Datum;
DecodeDate(Differenz, jahre, monate, tage);
if MonthsBetween(jetzt, Datum)
{DaysBetween(jetzt, Datum)} <> 0
then
monate := monate - 1
else
monate := 0;
jahre := InJahren(Datum, Now);
DecodeTime (Differenz, h, m, s, ms);
if Jahre <> 0
then result := InttoStr(Jahre) + '
Jahre ';
if Monate <> 0
then result := result + InttoStr(Monate) + '
Monate ';
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;