como calcular la edad de un usuario
Hola,
Quisiera saber como calcular la edad de un usuario, he leido algunas respuestas y puedo ver que se resta el año actual con al año del nacimiento del usuario y asi tengo la edad, mi problema es que no se con que funcion tomar el año actual y como tomar el año de nacimiento del usuario ya que en el campo de mi BD esta con el siguiente formato 18/05/1977. Despues de esto necesito es guardarlo en una variable, para asi mostrarlo con un Showmessage. Bueno, Saludos, Ajum. |
Restar años no es una solución válida para calcular edades. Proque no es lo mismo alguien que nació el 1/1/1980 con alguien del 1/05/1980, pese que pertenecen al mismo año si lo comparas el 1/4 del 1/6.
Edad := Trunc((Date - FechaNacimiento) / 365.25) |
Lo que te dice delphi.com.ar sera un buen aproximado, pero la edad exacta la obtenes con:
Código:
Function Edad(FechaNacimiento : TDateTime) : Integer; ;) |
Según mis cálculos no funciona, yo le haría los siguientes cambios.
Código:
procedure TForm1.Button1Click(Sender: TObject); |
Bueno, me han herido la moral :D , y por eso hice esta comprobación:
Código:
function DelphiComAr(AFechaNacimiento: TDateTime) : Integer; Si la comprobación se extiende a fechas muy antiguas, falla constantemente, ninguna de las funciones tiene en cuenta el desfasaje del calendario. Saludos |
Había probado la de JachGuate, y me fuí corriendo a mirar al espejo, porque tenía más de mil años.
La tuya no había llegado a hacer la prueba, pero me parecía que con la rectificación para los bisiestos no iba a funcionar en algún momento. Sin embargo, despues de la prueba que propones, me quedo con la tuya, está dentro de mi filosofía, la mejor función es la que emplea menos código. Bueno en cuanto a la diferencia de un año, como habrás observado yo entiendo que el día del cumpleaños ya se tienen los años cumplidos. Un Saludo. |
Que tal. Me he dado cuenta del error que cometí, la función funcionaría correctamente asi:
Código:
Function Edad(FechaNacimiento : TDateTime) : Integer; |
Una vez mas yo, quiero contarles que me fue muy bien con sus sugerencias, me funcionaron perfectamente segun mi necesidad, el motivo de mi retraso fue una vez mas mi computador, pero eso ya esta solucionado y creo que no volvera a molestar.
Saludos :D :D :D |
La franja horaria es GMT +2. Ahora son las 09:44:06. |
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