Efter som hverken år eller måneder er defineret som en constant tidsstørrelse ville en kode der talte korrekt kræve at man talte sig igennem en kalender,eller at du selv defineret en constant tid for dem.
de andre derimod er simple:
procedure TForm1.FormCreate(Sender: TObject);
var
from:TDateTime;
sec,min,hou,day:integer;
begin
from:=RecodeDateTime(from,2006,12,4,23,59,59,0);
sec:=SecondsBetween(now,from);
min:=sec div 60;
sec:=sec mod 60;
hou:=min div 60;
min:=min mod 60;
day:=hou div 24;
hou:=hou mod 24;
//showmessage(DateToStr(from));
showmessage('Days:'+IntToStr(day)+' Hours:'+IntToStr(hou)+' Minuts:'+IntToStr(min)+' Seconds:'+IntToStr(sec));
end;