Como Validar Los Campos De La Fecha


Subject: Como Validar Los Campos De La Fecha
Buenas amigos, gamberos tengo instalado gambas 2.19, uso Phpmyadmin bajo Ubuntu 10.04 LTS - la versión Lucid Lynx.

Estoy tratando de validar los datos que se introducen en la fecha tengo un Valuebox de tipo Date que me da el formato de fecha asi dd/mm/yyyy
El codigo que tengo me calcula la edad de una persona apartir de la Fecha de Nacimiento y la Fecha actual del sistema el codigo es el siguiente:

PUBLIC SUB ValueBox1_LostFocus()
DIM DateX AS String[3]
TextBox10.Text = Format$(Date, "dd/mm/yyyy")
DateX = Split(ValueBox1.text, "/")
TextBox9.Text = CInt((CInt(Format(Date, "yyyymmdd")) - CInt(DateX[2] & DateX[1] & DateX[0])) / 10000)
END

El TextBox10 es quien tiene la Fecha Actual del Sistema
El TextBox9 es quien da el resultado osea la Edad
El Valuebox1 es donde introduzco la Fecha de Nacimiento


Este codigo funciona 100% bien calcula la Edad fino pero siempre y cuando coloque la fecha en el siguiente orden dd/mm/yyyy "el cual es como la quiero tener "

Lo que quisiera es validar que cuando coloque un dia mayor a 31 ejemplo 33/09/2011 me de un mensaje de error donde diga el mes tiene 31 dias maximo, mas de 31 noo, No se puede procesar la fecha error en el dia

y que cuando coloque en el mes algo mayor a 12 ejemplo 31/13/2011 me diga epa. los meses solo son 12 No se puede procesar la fecha errror en el mes

Espero me puedan ayudar o guiarme saludos y mil gracias

Subject: Re: Como Validar Los Campos De La Fecha
Hola mym769

Tienes también la posibilidad que sabiendo que mes es, abrir un combobox en el que puedas dar a escoger el día.Contando con los años bisiestos.

Por otro lado para ahorrarte conversiones prueba la función STR$, que convierte números y fechas, respetando el formato local.

PUBLIC SUB Form_Open()
convertir("04/30/12")
END

PUBLIC SUB convertir(fecha AS Date)
DIM fechaconv AS String

fechaconv = Str$(fecha)
PRINT fechaconv

END


A todo esto.Llegamos a la conclusión de dárselo todo servido al usuario. click,click.

Ah, puedes usar la función Split, así:

PUBLIC SUB Form_Open()
DIM afecha AS String[]

afecha = Split("33/12/2012", "/")

IF CInt(afecha[0]) > 31 THEN PRINT "epa, te pasaste en los días"
IF CInt(afecha[1]) > 12 THEN PRINT "epa, te pasaste en los meses"

END


Tendrás que tener en cuenta cuantos días tiene ese mes, en el caso de bisiesto, el mes que es.

Saludos.

Last edited by Shell on Thursday, 12 April 2012, 08:56; edited 2 times in total
Subject: Re: Como Validar Los Campos De La Fecha
Buenas amigo. Shell primero muchas gracias por tratar de ayudarme de verdad.. Pero aun me da error y no logro validar el primer dato que es el dia y el segundo que es el mes
Por lo que entendi afecha[0] es el dia y el afecha[1] es el mes pero no me lo valida aun, apenas coloco cualquier numero y me da los mensajes de advertencia...

PUBLIC SUB ValueBox1_Change()
DIM afecha AS String[3]

afecha = Split("33/11/2100", "/") Cuando modifico el 33 por otro menor ejemplo 30 no da error pero deja que trabajar acepta 32 en el dia y 13 en el mes

IF CInt(afecha[0]) > 31 THEN
Message.Info("epa, te pasaste en los días")
ValueBox1.Value = ""
ValueBox1.SetFocus
ENDIF

IF CInt(afecha[1]) > 12 THEN
Message.Info("epa, te pasaste en los meses")
KILL ValueBox1.LostFocus
ValueBox1.Value = ""
ValueBox1.SetFocus
ENDIF

END

Subject: Re: Como Validar Los Campos De La Fecha
Listo amigo realice unos cambios y me funciono aqui esta lo que hice tambien para la comunidad que sirva de aporte de este humilde servidor

PUBLIC SUB ValueBox1_Change()
DIM fecha AS String[3]
fecha = Split(ValueBox1.text, "/") Cambie la fecha que tenia por el Valuebox donde introduzco la fecha manualmente
IF CInt(fecha[0]) > 31 THEN
Message.Info("epa, te pasaste en los días")
ValueBox1.Value = ""
ValueBox1.SetFocus
ENDIF
IF CInt(fecha[1]) > 12 THEN
Message.Info("epa, te pasaste en los meses")
ValueBox1.Value = ""
ValueBox1.SetFocus
ENDIF
CATCH agregue un capturador de error para el Error 21 OUT OF BOUNDS que siempre me salia
END

En esencia tu codigo me sirvio de mucho.. Gracias amigo SHELL estoy muy agradecido...


Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1465s (PHP: -32% SQL: 132%)
SQL queries: 24 - Debug Off - GZIP Enabled