Merhabalar dostum daha önce yaptığım bir programın kodlarını paylaşayım belki işini görür program girilen doğum tarihi ile şuanki tarihi alarak bu zamanda geçen yıl ay gün saat bazlı hesaplama yapıyor. Zamanında kendimi geliştirmek amaçlı yapmıştım.

//Kodlayan MuratKOKER
var
  Form1: TForm1;
  dogumgunu:String;
  sorgu:Boolean;
  aciklama:String;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
a,b:tdatetime;
c:integer;
bg,ba,by,dg,da,dy:word;
begin
try
form1.height:=215;
edit1.SetFocus;
a:=strtodatetime(edit1.Text);
b:=strtodatetime(edit2.Text);
c:=DaysBetween(a,b);
label6.Caption:=inttostr(c)+' gün geçmiş';
if edit1.text<>dogumgunu then
  begin
    b:=Date;
    DecodeDate(b,by,ba,bg);
    DecodeDate(StrToDate(edit1.Text),dy,da,dg);
    if bg<dg then
    begin
      bg:=bg+30;
      ba:=ba-1;
    end;
    if ba<da then
    begin
      ba:=ba+12;
      by:=by-1;
    end;
    aciklama:='Siz doğalı '+IntToStr(by-dy)+' yıl '+IntToStr(ba-da)+' ay '+
                    IntToStr(bg-dg)+' gün ';
    sorgu:=True;
    MessageBeep(MB_ICONEXCLAMATION);
  end;

except
  begin
    form1.height:=170;
    application.messagebox('Lütfen tarih alanlarını boş bırakmayınız!','Hata',mb_ok+mb_iconstop);
  end;
end;
end;

procedure TForm1.Edit2Click(Sender: TObject);
var
a:tdate;
begin
a:=date;
if edit1.text='' then
edit2.Text:=''
else
edit2.Text:=datetostr(a);
end;

procedure TForm1.Edit1Exit(Sender: TObject);
var
a:tdate;
begin
a:=date;
if edit1.Text='' then
edit2.Text:=''else
edit2.Text:=datetostr(a);

end;

procedure TForm1.Timer1Timer(Sender: TObject);
var sa,dk,sn,msn:word;
begin
  if sorgu=True then
  begin
    DecodeTime(time,sa,dk,sn,msn);
    if sa=0 then
      Label4.Caption:=aciklama+IntToStr(dk)+' dakika '+
                      IntToStr(sn)+' saniye'+#13+ '                                     '
    else if dk=0 then
      Label4.Caption:=aciklama+IntToStr(sa)+' saat '+
                      IntToStr(sn)+' saniye'+#13+ '                                     '
    else if sn=0 then
      Label4.Caption:=aciklama+IntToStr(sa)+' saat '+
                      IntToStr(dk)+' dakika'+#13+ '                                     '
    else if sa<10 then
      Label4.Caption:=aciklama+'0'+IntToStr(sa)+' saat '+IntToStr(dk)+' dakika '+
      IntToStr(sn)+' saniye'+#13+ '                                     '
    else if dk<10 then
      Label4.Caption:=aciklama+IntToStr(sa)+' saat '+'0'+IntToStr(dk)+' dakika '+
      IntToStr(sn)+' saniye'+#13+ '                                     '
    else if sn<10 then
      Label4.Caption:=aciklama+IntToStr(sa)+' saat '+IntToStr(dk)+' dakika '+
      '0'+IntToStr(sn)+' saniye'+#13+ '                                 '
    else
      Label4.Caption:=aciklama+IntToStr(sa)+' saat '+IntToStr(dk)+' dakika '+
      IntToStr(sn)+' saniye'+#13+ '                                     ';
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
a:tdate;
begin
a:=date;
label3.Caption:='Örnek Tarih:'+' '+datetostr(a);
end;