Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-02-2005
Jorge Taveras Jorge Taveras is offline
Miembro
 
Registrado: abr 2004
Ubicación: Santo Domingo
Posts: 68
Poder: 20
Jorge Taveras Va por buen camino
Thumbs up 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
Responder Con Cita
  #2  
Antiguo 10-02-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Aquí tienes la función que yo utilizo:
Código Delphi [-]
 Function Edad(FechaNacimiento : TDate) : Integer;
 Var
   an, mn, dn : Word;
   ahoy, mhoy, dhoy : Word;
 Begin
   DecodeDate(FechaNacimiento, an, mn, dn);
   DecodeDate(Now, ahoy, mhoy, dhoy);
 
   If  (mn > mhoy) or((mn = mhoy) and (dn > dhoy)) then
    Result:=ahoy - an - 1
   else
    Result:=ahoy - an;
 End;

Esta otra es de Federico Firenze:
Código Delphi [-]
 function DelphiComAr(AFechaNacimiento: TDateTime) : Integer;
 begin
   Result := Trunc((Date - AFechaNacimiento) / 365.25);
 end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 13-02-2005
Jorge Taveras Jorge Taveras is offline
Miembro
 
Registrado: abr 2004
Ubicación: Santo Domingo
Posts: 68
Poder: 20
Jorge Taveras Va por buen camino
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.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:01:57.


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
Copyright 1996-2007 Club Delphi