PDA

Ver la Versión Completa : fecha de nacimiento ,sacar edad


Geron
03-09-2003, 18:05:47
tengo problemas por mi falta de experiencia, no peuedo encontrar un metodo que a partir de la fecha actual me devuelva la edad de la persona , probe de todo, lo ultimo que intente es definir un campo autucalculable, pero desde delphi me muestra cualquier cosa, al campo lo defini asi
alter table pacientes
add edad date computed " (no recuerdo bien o algo asi)" ('now'-pac_fecha_nac)

desde ya muchas gracias si alguno conoce algun metodo que me lo haga direstamente,por las dudas les comento que estoy trabajando con delphi5 y con firebird
saludos desde La Plata

marcoszorrilla
03-09-2003, 19:36:57
Debes de utilizar la función Date en vez de Now, ya que Now te devuelve la fecha y hora y al resultado que serán días lo divides entre 365 despreciando los decimales y lo guardas en un campo de tipo entero.

Un Saludo.

muli
05-09-2003, 18:18:41
Function Edad(FechaNacimiento:string):integer;
var iTemp,iTemp2,Nada:word;
Fecha:TDate;
Begin
Fecha:=StrToDate(FechaNacimiento);
DecodeDate(Now,itemp,Nada,Nada);
DecodeDate(Fecha,itemp2,Nada,Nada);
if FormatDateTime('mmdd',Now) <
FormatDateTime('mmdd',Fecha) then Result:=iTemp-iTemp2-1
else Result:=iTemp-iTemp2;
End;

Procedure TDatos.ClientesCalcFields(DataSet: TDataSet);
begin
If Utiles.DateOk(Datos.Clientes.FieldByName('Nacimiento').AsString) Then
Begin
Datos.Clientes.FieldByName('Anos').AsFloat:=Edad(Datos.Clientes.FieldByName('Nacimiento').AsString);
End;
end;