none
Calcular edad

    Pregunta

  • Buenas a todos

    programo en vb.net 

    En esta ocasión estoy trabando de calcular la edad de una persona, partiendo de la fecha de nacimiento y mostrar el resultado en un textbox.

    Hay que tomar en cuenta que si a una persona le faltan meses o días para para cumplir la edad. 

    los ejemplos que he consultado en Google para calcular la edad, no toman en cuenta los días y los meses. 


    • Editado EliannyRD jueves, 5 de enero de 2017 16:00
    jueves, 5 de enero de 2017 15:56

Respuestas

  •     Public Function CalcularEdad(ByVal Nacimiento As Date) As String
            Dim Edad As String = "0"
    
            If Nacimiento.Month > Today.Month Then
                Edad = DateDiff(DateInterval.Year, Nacimiento, Date.Today).ToString - 1
            Else
                Edad = DateDiff(DateInterval.Year, Nacimiento, Date.Today).ToString
    
            End If
    
            Return Edad
        End Function
    Esta funcion te funcionara perfectamente. sin ningun error de calculo pruebala 

    Alexander Jimenez

    • Marcado como respuesta EliannyRD domingo, 8 de enero de 2017 15:10
    jueves, 5 de enero de 2017 18:45
  • Buenas tardes EliannyRD.

    Espero te sirva, yo calculo la edad con este pequeño código que te paso.

            private void btnCalcular_Click(object sender, EventArgs e)
            {
                DateTime dtp = dtpFecNac.Value;
                int edad = DateTime.Today.AddTicks(-dtp.Ticks).Year - 1;
                txtEdad.Text = Convert.ToString(edad);
            }
    Saludos.


    • Marcado como respuesta EliannyRD jueves, 5 de enero de 2017 18:41
    • Desmarcado como respuesta EliannyRD jueves, 5 de enero de 2017 18:42
    • Marcado como respuesta Pablo Rubio miércoles, 12 de septiembre de 2018 16:44
    jueves, 5 de enero de 2017 16:34
  •     Public Function CalcularEdad(ByVal Nacimiento As Date) As String
            Dim Edad As String = "0"
    
            If Nacimiento.Month > Today.Month Then
                Edad = DateDiff(DateInterval.Year, Nacimiento, Date.Today).ToString - 1
            Else
                Edad = DateDiff(DateInterval.Year, Nacimiento, Date.Today).ToString
    
            End If
    
            Return Edad
        End Function
    Esta te funcionara perfectamente para lo que quieres.

    Alexander Jimenez

    • Marcado como respuesta EliannyRD jueves, 5 de enero de 2017 19:07
    • Desmarcado como respuesta Pablo Rubio miércoles, 12 de septiembre de 2018 16:44
    • Marcado como respuesta Pablo Rubio miércoles, 12 de septiembre de 2018 16:44
    jueves, 5 de enero de 2017 18:46
  • Gracias por contestar

    el codigo me quedó asi:

    Dim date1 As Date = CDate(Me.txtFec_Nac_Cli.Value)
            Dim date2 As Date = DateTime.Now.ToShortDateString()
            
            Me.txtEdad.Text = "" & CStr(date2.Year - date1.Year) & ""
    pero no toma en cuenta los meses


    • Editado EliannyRD jueves, 5 de enero de 2017 18:41
    • Marcado como respuesta Pablo Rubio miércoles, 12 de septiembre de 2018 16:44
    jueves, 5 de enero de 2017 18:32

Todas las respuestas

  • Hola

    El calculo lo realizan conforme a necesidades, en tu caso entiendo que los meses que falten no se deben considerar como un año, creo que este ejemplo te servirá.

    http://www.visual-basic-tutorials.com/age-calculator-in-visual-basic.htm

    Te da una idea de como hacer los cálculos y adecuarlo a lo que necesites

    Aquí otras formas de hacerlo.

    http://stackoverflow.com/questions/16874911/compute-age-from-given-birthdate

    Saludos

    • Propuesto como respuesta Joyce_ACModerator jueves, 5 de enero de 2017 17:10
    • Marcado como respuesta EliannyRD jueves, 5 de enero de 2017 18:32
    • Desmarcado como respuesta EliannyRD jueves, 5 de enero de 2017 18:42
    • Votado como útil Joyce_ACModerator viernes, 6 de enero de 2017 16:24
    jueves, 5 de enero de 2017 16:25
  • Buenas tardes EliannyRD.

    Espero te sirva, yo calculo la edad con este pequeño código que te paso.

            private void btnCalcular_Click(object sender, EventArgs e)
            {
                DateTime dtp = dtpFecNac.Value;
                int edad = DateTime.Today.AddTicks(-dtp.Ticks).Year - 1;
                txtEdad.Text = Convert.ToString(edad);
            }
    Saludos.


    • Marcado como respuesta EliannyRD jueves, 5 de enero de 2017 18:41
    • Desmarcado como respuesta EliannyRD jueves, 5 de enero de 2017 18:42
    • Marcado como respuesta Pablo Rubio miércoles, 12 de septiembre de 2018 16:44
    jueves, 5 de enero de 2017 16:34
  • Gracias por contestar

    el codigo me quedó asi:

    Dim date1 As Date = CDate(Me.txtFec_Nac_Cli.Value)
            Dim date2 As Date = DateTime.Now.ToShortDateString()
            
            Me.txtEdad.Text = "" & CStr(date2.Year - date1.Year) & ""
    pero no toma en cuenta los meses


    • Editado EliannyRD jueves, 5 de enero de 2017 18:41
    • Marcado como respuesta Pablo Rubio miércoles, 12 de septiembre de 2018 16:44
    jueves, 5 de enero de 2017 18:32
  •     Public Function CalcularEdad(ByVal Nacimiento As Date) As String
            Dim Edad As String = "0"
    
            If Nacimiento.Month > Today.Month Then
                Edad = DateDiff(DateInterval.Year, Nacimiento, Date.Today).ToString - 1
            Else
                Edad = DateDiff(DateInterval.Year, Nacimiento, Date.Today).ToString
    
            End If
    
            Return Edad
        End Function
    Esta funcion te funcionara perfectamente. sin ningun error de calculo pruebala 

    Alexander Jimenez

    • Marcado como respuesta EliannyRD domingo, 8 de enero de 2017 15:10
    jueves, 5 de enero de 2017 18:45
  •     Public Function CalcularEdad(ByVal Nacimiento As Date) As String
            Dim Edad As String = "0"
    
            If Nacimiento.Month > Today.Month Then
                Edad = DateDiff(DateInterval.Year, Nacimiento, Date.Today).ToString - 1
            Else
                Edad = DateDiff(DateInterval.Year, Nacimiento, Date.Today).ToString
    
            End If
    
            Return Edad
        End Function
    Esta te funcionara perfectamente para lo que quieres.

    Alexander Jimenez

    • Marcado como respuesta EliannyRD jueves, 5 de enero de 2017 19:07
    • Desmarcado como respuesta Pablo Rubio miércoles, 12 de septiembre de 2018 16:44
    • Marcado como respuesta Pablo Rubio miércoles, 12 de septiembre de 2018 16:44
    jueves, 5 de enero de 2017 18:46
  • y como muestro la edad en el 
    Me.txtEdad.Text 
    jueves, 5 de enero de 2017 18:56
  • Gracias

    lo muestro asi:

     Dim fecNac As Date = txtFec_Nac_Cli.Value.Date
            txtEdad.Text = CalcularEdad(fecNac).ToString

    Gracias...

    jueves, 5 de enero de 2017 19:07
  • te funciono?

    Alexander Jimenez

    jueves, 5 de enero de 2017 19:19
  • Excelente 

    si

    domingo, 8 de enero de 2017 15:10
  • Hola, en que formato se debe meter la fecha en el textbox?

    DIA,MES,AÑO? O en que formato?

    y como hago para mostrar ese valor en textbox edad mediante un boton? 

    Espero me pueda ayudar, muchas gracias.

    lunes, 25 de junio de 2018 19:34
  • Exactamente no es un textbox, es una herrmienta llamada datatimepicker, en caso de que quieras ponerlo en un textbox varia dependiendo tu region en la computadora

    Alexander Jimenez

    lunes, 10 de septiembre de 2018 19:31