Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   fecha de nacimiento ,sacar edad (https://www.clubdelphi.com/foros/showthread.php?t=3352)

Geron 03-09-2003 18:05:47

fecha de nacimiento ,sacar edad
 
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;


La franja horaria es GMT +2. Ahora son las 03:20:03.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi