Ver Mensaje Individual
  #7  
Antiguo 12-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Reputación: 17
gabrielkc Va por buen camino
Cita:
Empezado por Caral
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
function Edad(FechaNacimiento:string):integer;
var iTemp,iTemp2,Nada:word;
Fecha:TDate;
begin
Fecha:=StrToDate(FechaNacimiento);
DecodeDate(Date,itemp,Nada,Nada);
DecodeDate(Fecha,itemp2,Nada,Nada);
if FormatDateTime('mmdd',Date) < FormatDateTime('mmdd',Fecha) then
Result:=iTemp-iTemp2-1
else Result:=iTemp-iTemp2;
end;
begin
Label1.Caption:=intToStr(Edad(DateToStr(DateTimePicker1.Date)));
end;
a caray que cosa mas rara la funcion recibe un parámetro de tipo strig por
lo cual conviertes un TDate a un string pero como necesitas un TDate,
en la primera linea de código conviertes el string (que era originalmente TDate) a un tipo TDate

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
    function Edad(FechaNacimiento:TDate):string;
  var
     iTemp,iTemp2,Nada:word;
     Fecha:TDate;
  begin
    DecodeDate(Date,itemp,Nada,Nada);
    DecodeDate(Fecha,itemp2,Nada,Nada);
     if FormatDateTime('mmdd',Date) <
        FormatDateTime('mmdd',Fecha) then 
      Result:=IntToStr(iTemp-iTemp2-1)
    else Result:=IntToStr(iTemp-iTemp2);
  end;
begin
  Label1.Caption:=Edad(DateTimePicker1.Date);
end;

Además es buscarle 5 pies al gato cuando existen las funciones:
YearsBetween, MonthsBetween, DaysBetwen, HoursBetween, WeeksBetween, etc., etc. en le unidad DateUtils
Responder Con Cita