PDA

Ver la Versión Completa : Calcular EDAD completa


MaMu
05-06-2007, 06:44:50
Como puedo hacer para calcular la edad completa de una persona, sabiendo su fecha de nacimiento?

Necesito obtener, AÑOS, MESES, y DIAS. La fecha de nacimiento la tomo de un DateTimePicker, del cual me gustaria poder inhabilitar la posibilidad de seleccionar una fecha a futuro, es decir, un dia que todavia no paso, como por ejemplo, mañana.

Todos los ejemplos que encontré en el foro, tan solo calculan años.

Saludos.

MaMu
05-06-2007, 06:54:44
SOLUCIONADO

Lo solucione implementanto esta función, la dejo acá por si alguien la necesita. Saludos


function CalculaEdadCompleta(Fecha:TDateTime):String;
var A, AA, M, MM, D, DD: Word;
Anio, Mes, Dia: double;
begin
DecodeDate(Fecha, A, M, D);
DecodeDate(Date, AA, MM, DD);
Anio := Int(AA - A);
if( M <= MM ) then
Mes := MM - M
else
begin
Mes := MM+12-M;
Anio := Anio -1;
end;
if( D <= DD ) then
Dia := DD - D
else
begin
Dia:=DD+MonthDays-D;
Mes := Mes -1;
end;
if Mes < 0 then
begin
Anio := Anio - 1;
Mes := 12 + Mes;
end;
Result := Format([I]'Años: %.0f, Meses: %.0f, Dias: %.0f', [Anio, Mes, Dia]);
end;


y la llamada


Label1.Caption:=CalculaEdadCompleta( DateTimePicker1.Date);


cof cof, marche truco para Cadenas...

Saludos.

Neftali [Germán.Estévez]
05-06-2007, 10:59:56
Si me permites la sugerencia, puedes añadirlo como truco en la sección de trucos del Club Delphi (http://www.clubdelphi.com/trucos/). Así quedará constancia si alguien más lo busca posteriormente.

Un saludo y gracias por el código.

Cañones
29-03-2011, 21:29:53
Gracias, muy bueno.