Resumen Calcular Edad de Nacimiento

Mensaje enviado por "Martin de los Rios" <dlrmartin@hotmail.com>

Claudio, te envio la función que desarrolle hace algunos años para VB3 que calcula la edad a partir de la fecha de nacimiento. Anda perfecto u la utilizo en varias aplicaciones para la salud.
Te calcula hasta los dias de vida.

Function edad (ByVal fnacim As Double)

On Error Resume Next
''definicion de variables
hoy$ = Format(Now, "dd/mm/yyyy")
fecha$ = Format(fnacim, "dd/mm/yyyy")
año_h% = DatePart("yyyy", hoy$)
mes_h% = DatePart("m", hoy$)
dia_h% = DatePart("d", hoy$)
año_n% = DatePart("yyyy", fecha$)
mes_n% = DatePart("m", fecha$)
dia_n% = DatePart("d", fecha$)

'desicion
años% = año_h% - año_n%
a% = DateDiff("yyyy", fecha$, hoy$)
m% = DateDiff("m", fecha$, hoy$)
d% = DateDiff("d", fecha$, hoy$)

If a% > 1 Then GoTo label_años
If m% > 1 Then GoTo label_meses
If d% >= 1 Then GoTo label_dias
If hoy$ = fecha$ Then GoTo rn
Exit Function

'años
label_años:
If mes_h% < mes_n% Then
    años% = años% - 1
ElseIf mes_h% = mes_n% Then
    If dia_h% < dia_n% Then
        años% = años% - 1
    End If
Else
    If años% > 1 Then
        edad = años% & " años"
    Else
        edad = años% & " año"
    End If
End If
    If años% > 1 Then
        edad = años% & " años"
    Else
        edad = años% & " año"
    End If
Exit Function

'meses
label_meses:
If m% >= 12 Then GoTo label_años
If mes_h% > mes_n% Then
    If dia_h% >= dia_n% Then
        If m% > 1 Then
            edad = m% & " meses"
        Else
            edad = m% & " mes"
        End If
    Else
        If m% - 1 > 1 Then
            edad = m% - 1 & " meses"
        Else
            edad = m% - 1 & " mes"
        End If
    End If
Else
    meses_año_ant% = 12 - mes_n%
    If dia_h% >= dia_n% Then
        total_meses% = meses_año_ant% + mes_h%
        If total_meses% >= 12 Then GoTo label_años
        If total_meses% = 0 Then GoTo label_dias
        If total_meses% > 1 Then
            edad = total_meses% & " meses"
        Else
            edad = total_meses% & " mes"
        End If
    Else
        total_meses% = meses_año_ant% + mes_h% - 1
        If total_meses% = 0 Then GoTo label_dias
        If total_meses% > 1 Then
            edad = total_meses% & " meses"
        Else
            edad = total_meses% & " mes"
        End If
    End If
End If
Exit Function

'dias
label_dias:
If d% > 1 Then
    edad = d% & " dias"
Else
    edad = d% & " día"
End If
Exit Function

rn:
edad = "Recién Nacido"

End Function


Eespero que te sirva, contame si fue asi.
Saludos,
*************************************************
Martín de los Ríos.
Mendoza - Argentina
   e-mail: dlrmartin@hotmail.com
   HamCall: LU4MGJ CQ13 - ITU14 73's Dx...
-------------------------------------------------


----- Original Message -----
From: "Claudio Riganti" <claudioriganti@geocities.com>
To: <vb-esp@ccc.uba.ar>
Sent: Sunday, February 11, 2001 11:33 AM
Subject: vb-esp : +++ Calcular Edad de Nacimiento +++
>
> Tengo una tabla de empleados y quisiera saber como puedo calcular la edad
> que tienen hasta el dia de hoy.



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com