Autor Beitrag
Kunoishi
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Do 26.12.02 11:27 
ich habe eine Datenbank Tabelle, in der ersten Spalte wird das aktuelle Datum (Format :01.01.02) eingegeben in der zweite Spalte das Geburtsdatum (Format:01.01.93). Nun soll er in der dritten Spalte mir das alter aus den beiden vorherigen Spalten errechnen und eintragen. Ich habe es mit dieser Anweisung versucht ( die rechnet aber kein Datumsformat zusammen ) was muß ich ändern.
ausblenden Quelltext
1:
2:
3:
4:
procedure TMastData.OrdersCalcFields(DataSet: TDataSet);
begin
  OrdersAlter.Value := OrdersADatum.Value - OrdersGDatum.Value 
end;


(30.12. 10:40 Tino) Code-Tags hinzugefügt.
chefkoch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48

WIN XP pro
D7
BeitragVerfasst: Sa 28.12.02 14:56 
Spiel da einfach mal ein bissl mit rum

funzt bis auf eins/zwei tage genau

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
function errechnealter(geburtsdatum: tdatetime) : integer;
var i :integer;
    heute, geburt : tdatetime;
begin
     geburt := geburtsdatum;
     heute := now;
     i := 0;
     while geburt+365 < heute do
     begin
     inc(i);
     geburt := geburt+365;
     end;

     errechnealter := i;



end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     alter.text :=  inttostr(errechnealter(strtodate('19.03.84')));
end;


cya

chefkoch
Steffer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 299



BeitragVerfasst: Sa 28.12.02 18:23 
Deffiniere "Alter": Jahre, Tage ...

_________________
Keine Signatur ...
chefkoch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48

WIN XP pro
D7
BeitragVerfasst: Sa 28.12.02 18:26 
Hanswurst definiert: Puuups .. das Alter is nur ne Angabe in Jahren STOP

Okay ? STOP
Steffer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 299



BeitragVerfasst: Sa 28.12.02 18:48 
Das war nicht Hanswurst sondern ein Schleifenwurst: :wink:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
Function Alter (const Geburtstag, Stichtag: TDateTime): Integer;
var  d,dd,m,mm,y,yy : Word;
begin
if Stichtag < Geburtstag
then Result := -1
else begin
     DecodeDate (Geburtstag, y,m,d);
     DecodeDate (Stichtag,yy,mm,dd);
     Result := yy - y;
     if (mm < m) or ((mm = m) and (dd < d))
     then Dec (Result);
     end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Alter der Person ist ' + IntToStr(Alter(StrToDate('30.12.1993'),now)) + ' Jahre');
end;


(30.12. 10:41 Tino) Code-Tags hinzugefügt.

_________________
Keine Signatur ...