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;