Visual Basic - Sobre fechas

Life is soft - evento anual de software empresarial
 
Vista:

Sobre fechas

Publicado por Jose (14 intervenciones) el 05/10/2002 01:29:24
Alguien me puede explicar por que ocurre esto, y si tiene solucion?

a="12/01/02"
b = CDate(a) Devuelve 12/01/02

es correcto, pero por el contrario si fuerzo un error en la fecha

a="33/01/02"
b=cdate(a) Devuelve 02/01/33

por que me sustituye el dia por el año?,,,no lo entiendo!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sobre fechas

Publicado por bla (230 intervenciones) el 05/10/2002 16:44:01
CDate convierte un texto en una fecha, interpretando que el formato es el de configuración del sistema de windows (puedes verlo en el panel de control/configuración regional, seguramente el tuyo será dd/mm/aa)
Pero cuando el texto no corresponde a una fecha intenta convertirlo con el formato inglés (mm/dd/aa) así "01/13/02" será el 13 de enero del 2002. Cuando esto vuelve a fallar intenta el formato universal yyyy/mm/dd que es el caso de "33/01/02". En este caso aún queda la duda de si se refiere a 1933 ó a 2033, él interpretará 2033.
Cuando metas una fecha lo mejor que puedes hacer es independizarla del formato local, introduciéndola en formato universal:
b=cdate("2002/12/31") ' (El año con 4 cifras)
en formato inglés con almohadillas:
b=#12/31/2002#
o con la función dateserial
b=dateserial(2002, 12, 31)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar