On 2012-07-28 19:49, Giorgio Zoppi wrote:
Marco compariamo

RegExp:
import re

date = "01/02/1988"
checkdate ="^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d"
obj = re.compile(checkdate)
if (re.match(date)):
     print 'Valid date'

Ti dice anche se un anno è bisestile?

Datetime
from datetime import datetime
date = '10/12/1977'
input = date.replace("/","")
result = None
format = ['%d%m%Y']
  try:
    result = datetime.strptime(input, format)
  except:
     pass

if (result):
    print "Validate"


Il secondo e' piu pythonico...ma lungo. Hai altre opzioni?

Basta toglierci tutta la roba che non serve. Che poi che vuol dire, più un pezzo di codice è corto e meglio è? L'estetica del perl?

from datetime import datetime
input = '10/12/1977'
try:
    result = datetime.strptime(input, '%d/%m/%Y')
except ValueError:
    result = None

(sebbene l'aggettivo "Pythonico" non sia esattamente ben definito, il tuo esempio *veramente* non lo era..)


--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a