Foros del Web » Programación para mayores de 30 ;) » Programación General »

Depuracion De Isdate Para Vb 6.0

Estas en el tema de Depuracion De Isdate Para Vb 6.0 en el foro de Programación General en Foros del Web. Hola chicos tengo que hacer una practica de visual basic y en una de las opciones me pide que en un textbox se introduzca una ...
  #1 (permalink)  
Antiguo 16/03/2004, 10:37
 
Fecha de Ingreso: marzo-2004
Mensajes: 2
Antigüedad: 20 años, 1 mes
Puntos: 0
Exclamación Depuracion De Isdate Para Vb 6.0

Hola chicos tengo que hacer una practica de visual basic y en una de las opciones me pide que en un textbox se introduzca una fecha que este depurada con el isdate como fecha correcta pero con el formato que usamos normalmente dia/mes/año.
los formatos son:
1/1/04 o 2004
01/1/04 o 2004
1/01/04 o 2004
01/01/04 o 2004

Algo asi, pero me estoy volviendo loco con el tema y por eso he recurrido a vosotros para ver si me podeis hechar una mano.
Muchas gracias.
  #2 (permalink)  
Antiguo 16/03/2004, 11:55
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 6 meses
Puntos: 0
No he entendido muy bien lo que tiene que hacer el programa, pero:
Código:
Private Sub Text1_LostFocus()
   
   If IsDate(text1.Text) Then
      ...
   End If
End Sub
en el evento "cuando pierda el foco" preguntas si es una fecha.

Saludos
Pablo
  #3 (permalink)  
Antiguo 16/03/2004, 12:45
 
Fecha de Ingreso: marzo-2004
Mensajes: 2
Antigüedad: 20 años, 1 mes
Puntos: 0
Si eso lo tengo claro lo que pasa es que isdate tiene muchos formatos mm/dd/aa ,etc.
Y yo quiero depurarlo para que me pille la fecha como la utilizamos en españa que es el dia /mes/año.
  #4 (permalink)  
Antiguo 16/03/2004, 13:08
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 6 meses
Puntos: 0
En la ventana inmediato de VB:
Código:
?isdate("01/15/04") 'Formato no español
TRUE
?isdate("01/01/04") 'Formato español (o inglés, no se sabe)
TRUE
IsDate dará true mientras sea válida, independientemente del formato. Con lo cual la conviertes al formato que te interesa, o sea "dd/mm/yy" y luego se la pasas a IsDate.
Código:
?format("01/15/04","ddmmyy")
15/01/04
?isdate("15/01/04")
TRUE
Este fallo es muy fácil de detectar:
Código:
?format("15/14/04","dd/mm/yy")
15/14/04
?isdate("15/14/04")
FALSE
Pero este es imposible, cuando un usuario quiere poner Mayo dia 2 de 2004:
Código:
?format("05/02/04","dd/mm/yy")
05/02/04
?isdate("05/02/04")
TRUE
la función format hace bién su trabajo pero no como tú quieres, porque debería haber puesto el 05 en el mes, y para IsDate es correcta pero para ti NO.

SOLUCION: una máscara en un textbox con el control MaskEdit. No recuerdo que librería es.

Espero que te sirva.
Un saludo.
  #5 (permalink)  
Antiguo 16/03/2004, 13:13
Avatar de rmilano  
Fecha de Ingreso: abril-2002
Ubicación: Mexico DF
Mensajes: 150
Antigüedad: 22 años
Puntos: 0
Buenas tardes,

Al campo de VB le colocas una mascara de fecha, estableciendo tu mismo el formato que convengas. Y al utilizar la funcion isdate, estara leyendo lo que quieres que lea. Espero se entienda.
__________________
Rodolfo Milano Oliveros
www.todohosting.com.mx
Especialista Sistemas de Información
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:14.