Aquí les dejo una función que me pidió una persona para calcular la edad exacta de una persona (Años, Meses, Días) ingresado como parámetros la fecha de nacimiento.
Nota: Tener en cuenta que los años cumplidos se sacan con la siguiente formula
Private Function CalcularEdad(ByVal
DiaNacimiento As Integer,
ByVal MesNacimiento As
Integer, ByVal
AñoNacimiento As Integer)
' SE DEFINEN
LAS FECHAS ACTUALES
Dim AñoActual
As Integer =
Year(Now)
Dim
MesActual As Integer
= Month(Now)
Dim
DiaActual As Integer
= Now.Day
Dim
Cumplidos As Boolean
= False
' SE
COMPRUEBA CUANDO FUE EL ULTIMOS CUMPLEAÑOS
' FORMULA:
' Años cumplidos = (Año del ultimo cumpleaños
- Año de nacimiento)
If (MesNacimiento <= MesActual) Then
If
(DiaNacimiento <= DiaActual) Then
If
(DiaNacimiento = DiaActual and MesNacimiento =
MesActual) Then
MsgBox("Feliz Cumpleaños!")
End
If
'
MsgBox("Ya cumplio")
Cumplidos = True
End
If
End If
If
(Cumplidos = False) Then
AñoActual = (AñoActual - 1)
'MsgBox("Ultimo
cumpleaños: " & AñoActual)
End If
' Se realiza la resta de años para definir los años
cumplidos
Dim
EdadAños As Integer
= (AñoActual - AñoNacimiento)
' DEFINICION
DE LOS MESES LUEGO DEL ULTIMO CUMPLEAÑOS
Dim
EdadMes As Integer
If Not (AñoActual = Now.Year) Then
EdadMes = (12 - MesNacimiento)
EdadMes = EdadMes + Now.Month
Else
EdadMes = Math.Abs(Now.Month -
MesNacimiento)
End If
'SACAMOS LA
CANTIDAD DE DIAS EXACTOS
Dim
EdadDia As Integer
= (DiaActual - DiaNacimiento)
'RETORNAMOS
LOS VALORES EN UNA CADENA STRING
Return
("Ud. tiene exactamente " &
EdadAños & " años , " &
EdadMes & " meses y " &
EdadDia & " dias")
End Function
Nota: Tener en cuenta que los años cumplidos se sacan con la siguiente formula
Años cumplidos = (Año del ultimo cumpleaños - Año de nacimiento)
Excelente algoritmo... Gracias por el aporte...
ResponderEliminarDe nada y para lo que necesites
EliminarSÓLO ABRIA QUE AGREGAR:
ResponderEliminarIf FechaInicio.Date = FechaTermino.Date Then
EdadAños = 0
EdadMes = 0
EdadDia = 1
Else
'todo el resto del algoritmo
end if
Hola Elizalde, gracias por comentar.
EliminarEn cuanto a tu aporte; Tecnicamente si las dos fechas son las mismas no tendrias un dia de vida, tendrias 0 dias, tendrias un dia de nacido al dia siguiente de haber nacido (Quizas sea un poco confuso :D) y en cunato al condiconal existe una rutina para en caso de q las dos fechas sean iguales; que es el condicional que te muestra el mensaje de feliz cumpleaños.
Saludos!
Este comentario ha sido eliminado por el autor.
ResponderEliminarNECESITO UN PROGRAMA CASI IGUAL QUE SOLO PONGA LA FECHA DE NACIMINETOS Y ME DIGA CUANTOS AÑOS TIENES DIAS MESES Y SU SIGNO ZODIACAL PORFAVOR NECESITO SU AYUDA EN VISUAL BASIC
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarcomo calculo la edad actual si tengo su fecha de nacimiento en una public class
ResponderEliminar