Einzelnen Beitrag anzeigen

Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Alter berechnen!

  Alt 8. Dez 2008, 19:10
Zitat von thiagojonas:
Hallo,
ich habe da mal wieder ein kleines problem...

Ich habe eine DateTimePicker und zwei variablen

datum:string;
datum := DateToStr(Now);

time:string;
time := DateToStr(DateTimePicker.Date);

Ich möchte jetzt sozusagen datum - time berechnen und dann das "alter" anzeigen lassen, z.B. über ShowMessage.

Wie folgt bin ich vorgegangen.

Delphi-Quellcode:
procedure TForm7.datum_dateChange(Sender: TObject);
var alter:extended;
begin
  time := DateToStr(datum_date.Date);
  alter := StrToDate(datum) - StrToDate(time);
  if (alter) >= 18 then
begin
  Tabsheet4.TabVisible := true;
  end
else
  if (alter) < 18 then
begin
  Tabsheet4.TabVisible := false;
  end;
end;
Funktioniert irgendwie nicht ganz.
Wenn das augewählte Datum 1995, dann wir der Tabsheet nicht auf false gesetzt
Woran liegt das?
Ich frage mich, warum Du das Datum und die Zeit erst in einen String verwandelst. Beim Hin- und Herwandeln wird wohl eine Rundungsungenauigkeit eintreten. TDateTime ist vom Typ Double, Du hast aber Extended verwendet.
Du kannst doch direkt damit rechnen:

Delphi-Quellcode:
procedure TForm7.datum_dateChange(Sender: TObject);
var
  alter: TDateTime;
begin
  alter := now - datum_date.Date;
  if alter >= 18 then
    Tabsheet4.TabVisible := true
  else
    Tabsheet4.TabVisible := false;
end;
So sollte es klappen.

Gruß
Michael
  Mit Zitat antworten Zitat