Hola a todos nuevamente yo!, evidentemente hay algo q estoy haciendo mal cuando saco la edad y los meses porq no me dan bien los resultado, mi sistema esta hecho en Delphi 7, trabajo con BD SQL Manager 2008 y el motor Firebird, lo q busco es, después de haber sacado con la función MontsBetween la cantidad de meses q tiene un paciente desde la fecha de nacimiento hasta hoy, obtener a partir de esa cantidad de meses, por ejemplo: 37, la cantidad de años y meses q tiene ese paciente, por ejemplo: 3 años y 1 mes.Aquí les presento el código:
Código Delphi
[-]var
a,edad,m: Integer;
begin
a:=0;
DM.DSET_pac.Edit;
DM.DSET_pacMESES.Value:=MonthsBetween(Now, DM.DSET_pacMESES.Value);
edad:=DM.DSET_pacMESES.Value;
For m:=edad Downto 12 do
a:=a+1;
m:=m-11;
DM.DSET_pacEDAD.Value:=a;
DM.DSET_pacMESES.Value:=m;
DM= Data_Module.
DSET_pac= Tabla pacientes.
a= cantidad de años.
m= cantidad de meses.
Ambos obtenidos después del for, q son los q no me dan como debe ser.
edad= cantidad de meses obtenidos con la función MonthsBetween.
Debo contarles q en el OnShow del Alta de pacientes tengo la fecha para q aparezca por defecto con la fecha actual, y al mes y año inicializado en 0, al igual en la BD.
Código Delphi
[-] DM.DSET_pacMESES.Value:=0;
DM.DSET_pacEDAD.Value:=0;
DM.DSET_pacFECHA_DE_NACIMIENTO.Value:= Now;
Desde ya muchas gracias por su ayuda!!!