[Python] controllo della data

Daniele Varrazzo piro a develer.com
Sab 28 Lug 2012 21:28:06 CEST


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


Maggiori informazioni sulla lista Python