Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Python (https://www.clubdelphi.com/foros/forumdisplay.php?f=46)
-   -   ¿Cómo validar fechas? (https://www.clubdelphi.com/foros/showthread.php?t=81185)

NFleitas 19-10-2012 15:13:33

¿Cómo validar fechas?
 
Que tal?
Como puedo validar que el usuario me ingreso una fecha con el formato correspondiente(MM/DD/AAAA)?
Agradeceria sus respuestas!

gatosoft 19-10-2012 16:06:29

Si utilizas un componente para captura de fechas, como un DateTimePicker, éste te ayuda con la validación... pero si estas permitiendo que el usuario digite libremente debes esperar cualquier cosa...

La forma facil que veo es:

Código Delphi [-]
 Try
  {Ojo: afecta la variable global ShortDateFormat para toda la aplicación}   
   ShortDateFormat:= 'mm/dd/yyyy';     
   StrToDate(Edit1.Text);
   ShowMessage('Fecha OK');
 except
   ShowMessage('Fecha no valida');
 end;


La función StrToDate acepta un segundo parametro TFormatSettings que es un registro que contiene entre otras variables ShortDateFormat... asi que puedes crear localmente un registro de este tipo configurarlo a tu antojo (sin afectar las variables globales) y enviarl como parametro de la función...

bye

Casimiro Notevi 19-10-2012 16:30:08

Cita:

Empezado por NFleitas (Mensaje 447443)
..

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

He modificado el título por algo más descriptivo a lo que preguntas, por favor, tenlo en cuenta para próximas preguntas, gracias.

Se supone que estás preguntando para hacerlo en python, ¿has visto los ejemplos de la ayuda?

NFleitas 19-10-2012 17:08:20

Gracias por las aclaraciones!

Ya me las arregle intentando con esto!

Código:

from time import mktime, strptime
from datetime import datetime

inicio = raw_input("Ingrese fecha (MM/DD/AAAA) inicial a buscar: ")
result = None

for format in ['%m/%d/%Y']:
  try:
    result = datetime.strptime(inicio, format)
  except:
    pass

if result is None:
  print 'Malformed date.'
else:
  print 'Date is fine'


Casimiro Notevi 19-10-2012 17:34:34

Gracias por comentarlo ^\||/

gatosoft 19-10-2012 18:18:15

Cita:

Empezado por Casimiro Notevi (Mensaje 447450)
... Se supone que estás preguntando para hacerlo en python ...

My Fault...! :rolleyes:

Casimiro Notevi 19-10-2012 18:30:03

Eso le pasa a cualquiera, no es la primera vez, ni será la última :)


La franja horaria es GMT +2. Ahora son las 02:50:56.

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