
Edad exacta
FoxPro/Visual FoxPro
Publicado el 21 de Junio del 2004 por Eduardo Ureña (3 códigos)
28.560 visualizaciones desde el 21 de Junio del 2004
Función que devuelve la edad exacta de una persona
FUNCTION cEdad(Fec2,Fec1)
* Programa: cEdad
* Escrito: Eduardo A. Ureña Solano
* País: Costa Rica
* Devuelve en una cadena, el texto que describe la edad exacta, tomando
* como parámetro Fec2 (fecha a la que se calculará la edad) y Fec1 (Fecha de nacimiento)
*
* Modificado con el aporte de Javier Alfonso Dávila,
* Ibagué Colombia, para considerar años bisiestos. ¡Gracias Colega!
* Margen de error: 1 día.
******
Dif=Fec2-Fec1
sumar = INT(Dif/1461)
Var1=Dif/365 &&Con decimales
Anos=INT(Var1) &&Entero, indicará los años.
Var1=Var1-Anos &&Tomando el resíduo decimal.
Var1=Var1*12 &&Calculando los meses
Meses=INT(Var1) && El Entero
Var1=(Var1-Meses)*30
Dias=INT(Var1)-Sumar
Xl=ALLTRIM(STR(Anos))+" Años, "+ALLTRIM(STR(Meses))+" Meses y
"+ALLTRIM(STR(Dias))+" Días."
RETURN Xl
Comentarios sobre la versión: Versión 1 (8)
Un abrazo al pueblo colombiano!
fec1 = 21/08/1968
fec2 = 14/09/2004
y ha arrojado estos valores:
AÑOS = 36
MESES =
DIAS = -7 (negativo 7).
Han despertado mi curiosidad y tengo desarrollada una rutina; quisiera saber cómo incluirlo.
Me exigen una valoración. Debo hacerlo como negativo.
MUCHAS GRACIAS !!!
pero puedo comentarles que el pequeño error por los años bisiestos se puede solucionar facilmente segun como funcione el codigo, dividiendo por 365,25 donde el 0,25 representa 1 dia mas cada 4 años.
un calculo sencillo de edad seria:
(fechahoy-fechanacimiento)/365,25
necesito que me digan como y desde donde llamo esa rutina, si desde un formulario o no. Si fec1 es igual al cuadro de texto del form.
Gracias...
Les comento que hice un proyecto con ese codigo que me permite determinar la edad exacta de todos los registros que hay en una tabla, ademas determina quienes cumplen años al momento de ejecutar la rutina.
En breve la enviare a la web.
Mis saludos para todos.