FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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. |
#3
|
|||
|
|||
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;
__________________
SI UN PROBLEMA TIENE SOLUCION, YA NO ES UN PROBLEMA, Y SI NO LA TIENE PARA QUE PREOCUPARSE. |
|
|
|