Podrías usar las funciones que ya vienen en delphi:
Código Delphi
[-]
...
uses
DateUtils;
function Duracion(Ahora, Antes: TDateTime): string;
var
AYears: Integer;
AMonths: Integer;
ADays: Integer;
AHours: Integer;
ADuracion: string;
begin
AYears := YearsBetween(Ahora, Antes);
AMonths := MonthsBetween(Ahora, Antes);
ADays := DaysBetween(Ahora, Antes);
AHours := HoursBetween(Ahora, Antes);
if AYears > 0 then
ADuracion := Format('%d año(s) ', [AYears]);
if AMonths > 0 then
ADuracion := ADuracion + Format('%d mes(es) ', [AMoths]);
if ADays > 0 then
ADuracion := ADuracion + Format('%d día(s) ', [ADays]);
if AHours > 0 then
ADuracion := ADuracion + Format('%d hora(s)', [AHours]);
Result := ADuracion
end;
Esta función la hice al vuelo, sin probarla, puedes usarla como referencia para lo que deseas hacer. Para mayor información sobre las funciones y procedimientos de tratamiento de Fechas, busca en la ayuda de delphi por:
Datetime routines.
Espero te sirva...
Saludos.