Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Validar Fecha StrToDate (https://www.clubdelphi.com/foros/showthread.php?t=15416)

franciscobucio 22-10-2004 15:45:35

Validar Fecha StrToDate
 
Hola a todos,

Teno un problema que no he podido solucionar, Necesito hacer validaciones de fechas a partir de String:

Try
FechaArchivo.Date := StrToDate(StrFecha);
bandFecha := True;
Except
On EConvertError Do ShowMessage('Error');
End;

A lo que he leido si existe una fecha invalida (p. ejem. 30/02/2004) se genera una excepción y se captura con EConvertError, el detalle es que no lo hace.

Alguien podría ayudarme si estoy mal o alguna otra opción para poder hacer la validación de las fechas?


Gracias de antemano

Saludos,
Francisco Javier Bucio

quetzal 22-10-2004 16:49:48

mmmmmm

y si validaras el string antes de pasarlo

osea si chechas que si estas en el mes 1,3,5,7,8,10,12 el numero mayo de dias sera 31 y si son el mes 4,6,9,11 el numero sera 30 si es el mes es el 2 sera 28 pero si le aplicas mod al año y sale 0 esto quiere decir que es año bisiesto y sera de 29, esto es lo que se me ocurre en este instante.

espero te sirva de algo :D

franciscobucio 22-10-2004 16:59:45

RW: Validar Fecha
 
Gracias Quetzal,

Si, esa sería un forma de hacerlo, aunque pensé que si podía capturar la excepcion delphi, pero mientras encuentro algo, tendré que hacerle así, jeje



Muchas gracias

edgusano 22-10-2004 22:18:22

Si deseas capturar la excepcion, porque no simplemente pones la clausula EXCEPT sin el tipo de error que pones, es decir el codigo inicial quedaria asi:
Código:

  Try
      FechaArchivo.Date := StrToDate(StrFecha);
      bandFecha := True;
  Except
      ShowMessage('Error');
  End;

Espero y te sirva

roman 22-10-2004 22:31:11

Cita:

Empezado por franciscobucio
Alguien podría ayudarme si estoy mal o alguna otra opción para poder hacer la validación de las fechas?

Tal como lo haces debe funcionar. Lo que puede suceder es que tengas activada la opción "Stop on Delphi exceptions" en Tools|Debugger Options|Language Exceptions lo que ocasiona que primero aparezca la excepción de siempre y después tu mensaje. Puedes dsactivar la opción pero de cualquier forma si ejecutas tu aplicación fuera del IDE sólo se mostrará tu mensaje.

// Saludos

roman 22-10-2004 22:34:14

Cita:

Empezado por edgusano
Si deseas capturar la excepcion, porque no simplemente pones la clausula EXCEPT sin el tipo de error que pones

Porque no es una práctica recomendable. Hacerlo así es suponer que la única excepción posible que puede ocurrir es la de la conversión. Si se genera otro tipo de excepción que deba manejarse de otra forma tendrás problemas.

En un caso sencillo quizá no pase nada pero para prevenir futuros dolores de cabeza es bueno evitar este tipo de técnicas.

// Saludos


La franja horaria es GMT +2. Ahora son las 12:12:04.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi