![]() |
Calcular la edad execta de una persona
Muy buenas, amigos foristas.
quisiera calcular la edad exacta de una persona a partir de una sentencia sql o de delphi.... intente usar el datepart(year, fecha), datepart(month,fecha) y datepart(day,fecha), pero solo el primero me ofrece los años exactos, luego los meses me los dá globales y los dias por igual... A ver que me dicen, amigos... Gracias de antemano |
Aquí tienes la función que yo utilizo:
Esta otra es de Federico Firenze:
Un Saludo. |
Gracias Marcoszorrilla, la verdad que para lograr lo que queria, pues tuve que agregarle algunos pasos a tu función. Ahí te le dejo por si aca... la concluí hasta donde la queria... Siempre son mil veces agradecias sus colaboraciones.
Function Edad(FechaNacimiento : TDate) :string; Var an, mn, dn : Word; ahoy, mhoy, dhoy : Word; RAnos, Rmeses, Rdias:word; resultado:string; Begin DecodeDate(FechaNacimiento, an, mn, dn); DecodeDate(Now, ahoy, mhoy, dhoy); If (mn > mhoy) or((mn = mhoy) and (dn > dhoy)) then Ranos:=ahoy - an - 1 else RAnos:=ahoy - an; if (mn - mhoy) < 0 then RMeses:= 12 + (mn - mhoy); if (mn - mhoy) = 0 then Rmeses:= 0; if (mn - mhoy) > 0 then RMeses:= mn - mhoy; // if ranos = 0 then begin case Rmeses of 0: Resultado := ''; 1: Resultado := 'Un mes'; // else // Resultado := inttostr(Rmeses) + ' meses'; end; end else begin if ranos = 1 then resultado:= 'Un año' else resultado:= inttostr(ranos) + ' años' end; case Rmeses of 0: Resultado := Resultado + ''; 1: Resultado := resultado + 'Un mes'; else Resultado := resultado + ', ' + inttostr(Rmeses) + ' meses'; end; result:=resultado; end; Esto me tira la edad con los meses, ejemplo 35 años, 3 meses es +/- la edad exacta. Faltarian los días pero no los necesito por ahora. |
La franja horaria es GMT +2. Ahora son las 06:29:48. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi