Certo che si può sottrarre una data da un'altra!
codice:
procedure TForm1.Button1Click(Sender: TObject);
var
d1, d2: TDateTime;
begin
d1 := StrToDate('01/01/2003');
d2 := Now;
d1 := d2 - d1;
ShowMessage(FloatToStr(Trunc(d1)));
end;
Il tipo TDateTime è un derivato del tipo Double. La parte intera memorizza i giorni trascorsi dal 30/12/1899 mentre la parte decimale contiene un valore che indica quale porzione del giorno è trascorsa.
Quindi, si deduce che sottraendo la parte intera di due date si ottiene la differenza in numero di giorni.