none
Fecha (Fecha de Nacimeniento) con 3 Textbox

    Pregunta

  • Hola buenas dias, mi consuta es como puedo realizar una fecha valida con 3 textbox?

    la idea es que en el textbos 1 se introduzca el dia de nacimiento, en el textbox 2 el mes y en el textbox 3 el año, para al final poder concatenarlo y guardarlo domo una fecha valida..

    a ver si alguien me puede orientar un poco

    jueves, 20 de abril de 2017 14:44

Respuestas

  • ...la idea es que en el textBox1 se introduzca el día de nacimiento, en el textBox 2 el mes y en el textBox 3 el año, para al final poder concatenarlo y guardarlo como una fecha válida...

    Entiendo que por "guardar como fecha válida" te refieres a almacenar el valor en un tipo coherente, por ejemplo en un tipo date, ¿verdad?, de ser así puedes asignar las partes -de la fecha- como argumentos del constructor de la clase Date, por ejemplo:

    Dim Fecha = New Date(CInt(txtAnio.Text), CInt(txtMes.Text), CInt(txtDia.Text))


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    jueves, 20 de abril de 2017 15:34
  • {...}  pero seria tedioso desde un DateTimePicker buscar tu fecha de nacimiento

    ¿Buscar dónde?, ¿sobre el propio control?. No necesitas desplegar el cuadro donde se muestran las fechas para navegar entre años hasta llegar a una determinada fecha, basta con escribir en el cuadro de edición la fecha que buscas, claro, el control hace por ti las validaciones correspondientes.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Propuesto como respuesta Joyce_ACModerator viernes, 21 de abril de 2017 16:49
    • Marcado como respuesta Jefry Zelaya viernes, 21 de abril de 2017 17:46
    viernes, 21 de abril de 2017 14:48

Todas las respuestas

  • Hola Jefry Zelaya

    Dim dia As Integer
    Dim mes As Integer
    Dim anio As Integer
    
    dia = Convert.toInt32(TxtDia.Text)
    mes = Convert.toInt32(TxtMes.Text)
    anio  = Convert.toInt32(TxtAnio.Text)
    
    Dim fecha As Date
    fecha = Convert.toDatetime(dia.toString() & "/" & mes.toString() & "/" & anio.toString())
    
    
    
    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    jueves, 20 de abril de 2017 14:59
  • ...la idea es que en el textBox1 se introduzca el día de nacimiento, en el textBox 2 el mes y en el textBox 3 el año, para al final poder concatenarlo y guardarlo como una fecha válida...

    Entiendo que por "guardar como fecha válida" te refieres a almacenar el valor en un tipo coherente, por ejemplo en un tipo date, ¿verdad?, de ser así puedes asignar las partes -de la fecha- como argumentos del constructor de la clase Date, por ejemplo:

    Dim Fecha = New Date(CInt(txtAnio.Text), CInt(txtMes.Text), CInt(txtDia.Text))


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    jueves, 20 de abril de 2017 15:34
  • ...la idea es que en el textBox1 se introduzca el día de nacimiento, en el textBox 2 el mes y en el textBox 3 el año, para al final poder concatenarlo y guardarlo como una fecha válida...

    Entiendo que por "guardar como fecha válida" te refieres a almacenar el valor en un tipo coherente, por ejemplo en un tipo date, ¿verdad?, de ser así puedes asignar las partes -de la fecha- como argumentos del constructor de la clase Date, por ejemplo:

    Dim Fecha = New Date(CInt(txtAnio.Text), CInt(txtMes.Text), CInt(txtDia.Text))


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    gracias por la respuesta (de nuevo), una ultima pregunta en cuanto a esto, en dado caso si la fecha incorrecta la que se ingresa, por ejemplo 30/02/1999, con este código el programa por obvias razones muestra error, la pregunta es como valido para evitar ese error?
    jueves, 20 de abril de 2017 21:39
  • Jefry Zelaya

    Puedes comparar tu valor de fecha con la fecha actual

    If fecha < Date.Now Then
          MessageBox.Show("La fecha no puede ser menor a la actual")
    End If

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    jueves, 20 de abril de 2017 22:46
  • Jefry Zelaya

    Puedes comparar tu valor de fecha con la fecha actual

    If fecha < Date.Now Then
          MessageBox.Show("La fecha no puede ser menor a la actual")
    End If

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    Gracias por la respuesta, te muestro en codigo lo que tu propones:
            Dim Fecha = New Date(CInt(TxtAnio.Text), CInt(TxtMes.Text), CInt(TxtDia.Text))
    
            If Fecha < Date.Now Then
                MessageBox.Show("La fecha no puede ser menor a la actual")
            End If
    el problema es que me marca un error desde la declaración de la fecha y no alcanza a entrar al ciclo if
    jueves, 20 de abril de 2017 23:50
  • ...si la fecha que se ingresa es incorrecta, por ejemplo 30/02/1999, con este código el programa por obvias razones muestra error, la pregunta es ¿cómo valido para evitar ese error? 

    ¿Por qué no usas el control DateTimePicker o el control MaskedTextBox

    Si separas las partes de una fecha en cajas de texto la validación básica deberá restringir el ingreso a sólo valores numéricos, el rango del día dependerá del mes, el mes estará entre 1 y 12 y el año según el rango que consideres; como vez podrías evitarte las validaciones si ocupas controles ad-hoc para el manejo de fechas.

    También podrías validar si la concatenación de partes resulta en un valor de fecha válido, para ello puedes usar la función TryParseExact


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    jueves, 20 de abril de 2017 23:57
  • ¿Por qué no usas el control DateTimePicker o el control MaskedTextBox

    Si separas las partes de una fecha en cajas de texto la validación básica deberá restringir el ingreso a sólo valores numéricos, el rango del día dependerá del mes, el mes estará entre 1 y 12 y el año según el rango que consideres; como vez podrías evitarte las validaciones si ocupas controles ad-hoc para el manejo de fechas.

    También podrías validar si la concatenación de partes resulta en un valor de fecha válido, para ello puedes usar la función TryParseExact


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.

    Pues mira el DateTime no creo que se acomode a lo que pretendo hacer, el MaskedTexbox no me guata  XD

    y pues siempre he querido hacerlo con 3 textbox o con 3 combobox, y si la solucion podria ser validando y limitando las cantidades a ingresar en cada textbox, Gracias por la respuesta

    viernes, 21 de abril de 2017 0:05
  • ...pues mira el DateTime no creo que se acomode a lo que pretendo hacer, el MaskedTexbox no me guata  XD

    Y sólo por curiosidad -si deseas puedes omitir la respuesta-, ¿qué deseas conseguir que consideras que el control DateTimePicker no pueda ayudarte?. Muy por el contrario, pienso que trabajar las partes de fecha por separado no sólo se complica para ti, sino también para el usuario.

    viernes, 21 de abril de 2017 0:35
  • ...pues mira el DateTime no creo que se acomode a lo que pretendo hacer, el MaskedTexbox no me guata  XD

    Y sólo por curiosidad -si deseas puedes omitir la respuesta-, ¿qué deseas conseguir que consideras que el control DateTimePicker no pueda ayudarte?. Muy por el contrario, pienso que trabajar las partes de fecha por separado no sólo se complica para ti, sino también para el usuario.

    si yo se que podria ser mas facil, pero seria tedioso desde un dataTime buscar tu fecha de nacimiento, o al menos eso pienso yo!
    viernes, 21 de abril de 2017 14:08
  • {...}  pero seria tedioso desde un DateTimePicker buscar tu fecha de nacimiento

    ¿Buscar dónde?, ¿sobre el propio control?. No necesitas desplegar el cuadro donde se muestran las fechas para navegar entre años hasta llegar a una determinada fecha, basta con escribir en el cuadro de edición la fecha que buscas, claro, el control hace por ti las validaciones correspondientes.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Propuesto como respuesta Joyce_ACModerator viernes, 21 de abril de 2017 16:49
    • Marcado como respuesta Jefry Zelaya viernes, 21 de abril de 2017 17:46
    viernes, 21 de abril de 2017 14:48
  • {...}  pero seria tedioso desde un DateTimePicker buscar tu fecha de nacimiento

    ¿Buscar dónde?, ¿sobre el propio control?. No necesitas desplegar el cuadro donde se muestran las fechas para navegar entre años hasta llegar a una determinada fecha, basta con escribir en el cuadro de edición la fecha que buscas, claro, el control hace por ti las validaciones correspondientes.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    Ok, gracias por la aclaración, el detalle es que usaba un MetroDatatime y este no permitia eso, usare el normal que trae visual, este si lo logra edirtar
    viernes, 21 de abril de 2017 17:45