Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Tage in Jahre (https://www.delphipraxis.net/3910-tage-jahre.html)

Duffy 6. Apr 2003 11:00

Hallo,
ich weis ja nicht was Du vor hast. Wenn Du aber nur das Alter in Jahren haben willst, dann decodiere (DecodeDate) doch einfach beide Datumsfelder und ziehe dann Jahr heute von Jahr damals ab. Jetzt brauchst Du nur schauen ob Tag und Monat vor oder gleich oder nach deinem Stichtag ist. Wenn kleiner dann einfach 1 vom Jahr abziehen.
Alles verstanden?

bye

The Re@l 6. Apr 2003 13:34

So Nun funzt es auch richtig

Delphi-Quellcode:
procedure TForm3.DBEdit10Change(Sender: TObject);

var
 datum1, datum2,Dneu,dneu1: TDatetime;
 i: Integer;
 d,m,y,d1,y1,m1 : Word;
begin
  IF DBEdit10.Text <>'' then begin
  datum1:= Query1.FieldByName('date').AsDateTime;
  datum2:=now;
  decodedate(datum1,y,m,d);
  decodedate(datum2,y1,m1,d1);
  dneu := encodedate(1,m,d);    //Geburtsdatum
  dneu1 := encodedate (1,m1,d1); //aktuelles datum
  If dneu > dneu1 then
     i := Round((y1 - y)-1);
     edit2.Text := IntToStr(i) + ' Jahre';
  If dneu < dneu1 then
     i := Round(y1 - y);
     edit2.Text := IntToStr(i) + ' Jahre';
  If dneu = dneu1 then
     i := Round(y1 - y);
     edit2.Text := IntToStr(i) + ' Jahre';
  end else begin
  Edit2.Text := '';
  end;

end;
Thx @ all

Duffy 6. Apr 2003 14:21

Hallo,
als Function wärs schöner gewesen !
Delphi-Quellcode:
function AlterInJahren(const Damals, Heute: TDateTime): Integer;
var
   DamalsTag, DamalsMonat, DamalsJahr: Word;
   HeuteTag, HeuteMonat, HeuteJahr: Word;
begin
  if Heute < Damals then
  begin
     Result := -1
  end
  else
  begin
    DecodeDate (Damals, DamalsJahr, DamalsMonat, DamalsTag);
    DecodeDate (Heute, HeuteJahr, HeuteMonat, HeuteTag);
    Result := HeuteJahr - DamalsJahr;
    if (HeuteMonat <= DamalsMonat) and (HeuteTag < DamalsTag) then
    begin
      Dec (Result);
    end;
  end;
end;
Delphi-Quellcode:
procedure TForm3.DBEdit10Change(Sender: TObject);

var
datum1, datum2,Dneu,dneu1: TDatetime;
i: Integer;
d,m,y,d1,y1,m1 : Word;
begin
  IF DBEdit10.Text <>'' then begin
  datum1:= Query1.FieldByName('date').AsDateTime;
  datum2:=now;
  edit2.Text := IntToStr(AlterInJahren(datum1, datum2) + ' Jahre';
  end else begin
  Edit2.Text := '';
  end;
end;
bye

The Re@l 8. Apr 2003 15:55

Sorry das ich erst jetzt schreibe, aber mein Motherboard hatte den löffel abgegeben, Deine Variante gefällt mir irgendwie besser.

mmhh auf jedenfall Danke nochmal für eure hilfe!


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:49 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz