none
calcular edad desde un maskedbox RRS feed

  • Pregunta

  • hola amigos

    necesito calcular la edad ingresando solo la fecha de nacimiento en un maskedtexbox y cuando termine de digital calcule la edad en label... mil gracias  vb 

    sábado, 23 de junio de 2018 23:02

Respuestas

  • Hola:
    En un Form como el de la imagen

    copia y pega el siguiente codigo

    Public Class Form1
        Private Sub btnCalcular_Click(sender As Object, e As EventArgs) Handles btnCalcular.Click
            Dim edad1 As Integer = DateTime.Today.AddTicks(-DateTimePicker1.Value.Ticks).Year - 1
            Me.lblResultado1.Text = edad1.ToString
            Dim edad2 As Integer = lF_iAños2(DateTimePicker1.Value.Date)
            If DateTimePicker1.Value.Date > DateTime.Today.AddYears(-edad2) Then
                edad2 -= 1
            End If
            Me.lblResultado2.Text = edad2.ToString
            Me.lblResultado3.Text = CStr(lF_iAños3(Me.DateTimePicker1.Value.Date))
        End Sub
        Private Function lF_iAños2(FechaNacimiento As Date) As Integer
            If (FechaNacimiento.Year = DateTime.Today.Year) Then
                Return 0
            End If
            Return 1 + lF_iAños2(FechaNacimiento.AddYears(1))
        End Function

        Private Function lF_iAños3(ByVal FechaNacimiento As Date) As Integer
            Dim liAños As Integer = CInt(DateDiff(DateInterval.Year, FechaNacimiento, Date.Today))
            If DateTimePicker1.Value.Date > DateTime.Today.AddYears(-liAños) Then
                liAños -= 1
            End If
            Return liAños
        End Function
    End Class

    Un saludo desde Bilbo
    Carlos

    domingo, 24 de junio de 2018 10:31

Todas las respuestas

  • Hola:
    En un Form como el de la imagen

    copia y pega el siguiente codigo

    Public Class Form1
        Private Sub btnCalcular_Click(sender As Object, e As EventArgs) Handles btnCalcular.Click
            Dim edad1 As Integer = DateTime.Today.AddTicks(-DateTimePicker1.Value.Ticks).Year - 1
            Me.lblResultado1.Text = edad1.ToString
            Dim edad2 As Integer = lF_iAños2(DateTimePicker1.Value.Date)
            If DateTimePicker1.Value.Date > DateTime.Today.AddYears(-edad2) Then
                edad2 -= 1
            End If
            Me.lblResultado2.Text = edad2.ToString
            Me.lblResultado3.Text = CStr(lF_iAños3(Me.DateTimePicker1.Value.Date))
        End Sub
        Private Function lF_iAños2(FechaNacimiento As Date) As Integer
            If (FechaNacimiento.Year = DateTime.Today.Year) Then
                Return 0
            End If
            Return 1 + lF_iAños2(FechaNacimiento.AddYears(1))
        End Function

        Private Function lF_iAños3(ByVal FechaNacimiento As Date) As Integer
            Dim liAños As Integer = CInt(DateDiff(DateInterval.Year, FechaNacimiento, Date.Today))
            If DateTimePicker1.Value.Date > DateTime.Today.AddYears(-liAños) Then
                liAños -= 1
            End If
            Return liAños
        End Function
    End Class

    Un saludo desde Bilbo
    Carlos

    domingo, 24 de junio de 2018 10:31
  • amigo mil gracias 

    me ayudo mucho 

    te pregunto algo mas mas:

    como puedo cambiar el formato del DateTimePicker1

    a mm/dd/aaa

    gracias 

    miércoles, 27 de junio de 2018 2:37
  • Hola:
    Prueba con algo como esto

        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
            Me.DateTimePicker1.Format = DateTimePickerFormat.Custom
            Me.DateTimePicker1.CustomFormat = "MM/dd/yyy"
        End Sub

    Un saludo desde Bilbo
    Carlos

    miércoles, 27 de junio de 2018 6:01