• 15-04-2010, 00:37:27
    #1
    Merhaba Arkadaşlar Delphide Bir Program Yazıyorum ve Bir Yerde Takıldım Kafa durduda Diyebiliriz Herneyse Sorunum Şudur;

    Bir Kişi Doğum Tarihini Girdiği Zaman O Günün Tarihine göre Kaç Yaşında Olduğunu Nasıl Hesaplatabiliriz ?

    NOT : Paradoxda Yazıyorum Programı Tarih Değişkeni ve Yaş Değişkeni Tanımladım Galiba Bu Hesaplamayı Doğum Tarihinin Dbeditin - Eventsindeki OnExitte Yapacağım Nasıl Yapabilirim ??

    Şimdiden Teşekkürler..
  • 15-04-2010, 11:23:50
    #2
    Üyeliği durduruldu
    var
    r10,r11: Integer ;

    begin
    r10:= StrToInt(Edit1.Text);
    r11:=StrToInt(edit2.Text);
    label1.Caption := IntToStr(r10 - r11 );

    gibi mantık bu iki tarih arasındaki farkı alacaksın geliştirmek sana kalmış
  • 15-04-2010, 16:54:43
    #3
    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;
  • 15-04-2010, 20:53:58
    #4
    Murat Kardeş Sağolasın ama Benim Yapmak İstediğim bu Kadar Kapsamlı Değil. .Ben Sadece Doğum tarihini Girdiği Zaman Yaşını Hesaplattıracam ama Kodlardan Bu Dediğimi Çıkarmaya Çalışacağım Yardımın İçin Teşekkürler.
  • 16-04-2010, 11:01:21
    #5
    a:=strtodatetime(edit1.Text);
    b:=strtodatetime(edit2.Text);
    c:=DaysBetween(a,b);

    burda kullandığım kodu biraz internetten araştır kardeş DaysBetween iki tarih arasındaki farkı buluyor.