Bueno, debo decir que este algoritmo puede ser usado libremente pero sin modificar ni una linea, o a lo menos manteniendo mis datos, pues es parte de un sistema que esta registrado a mi nombre.
Ahi va.
Public Function calcEdad(fnac As Date) As Byte
*******************************************************************
** Calcula los años de una persona, usando el metodo **
** natural de calculo, Busca diferencia entre años, meses y dias **
** **
**
[email protected] (c)2004 **
*******************************************************************
Dim vDiaInicio As Byte
Dim vMesInicio As Byte
Dim vAnoInicio As Integer
Dim vDiaFin As Byte
Dim vMesFin As Byte
Dim vAnoFin As Integer
Dim vAnos As Byte
Dim vMeses As Integer
Dim vDias As Integer
vDiaInicio = Day(fnac)
vMesInicio = Month(fnac)
vAnoInicio = Year(fnac)
vDiaFin = Day(Now())
vMesFin = Month(Now())
vAnoFin = Year(Now())
vAnos = vAnoFin - vAnoInicio
vMeses = IIf(vMesFin >= vMesInicio, 0, -1)
vDias = IIf(vMesFin = vMesInicio, IIf(vDiaFin >= vDiaInicio, 0, -1), 0)
calcEdad = vAnos + vMeses + vDias
End Function
---------------------------------
Debemos llamarla como a cualquier funcion, asi nos entregerá la edad exacta en años. Si gustan tengo la version que entrega Años, Meses y Dias.
Uso:
calcEdad(FechaNacimiento)