[Python-de] Datumseingabe testen

Ron Opitz ron.opitz at dts.de
Tue Aug 27 16:53:46 EDT 2002


Am Montag, 26. August 2002 17:47 schrieben Sie:
> gibt es zwar nicht als Funktion im Standardumfang, doch kann  man sich das
> selbst leicht bauen:
>
> from time import mktime, localtime
> from exceptions import OverflowError, ValueError
>
> def valid_date (y, m, d):
>     tt = (y, m, d, 12, 0, 0, 0, 0, 0)
>     try:
>         t = mktime (tt)
>     except OverflowError:
>         return 0
>     except ValueError:
>         return 0
>     return localtime (t) [:3] == tt [:3]
>

Danke für Eure schnellen Antworten.

Ich habe aber noch ein Problem, wenn ich den Code in mein Skript einbaue.

def hinweis():
    import tkMessageBox
    tkMessageBox.showinfo("Hinweis", "Falsches Datumsformat!")

def valid_date (jahr, monat, tag):
    tt = (jahr, monat, tag, 12, 0, 0, 0, 0, 0)
    try:
       t = mktime(tt)
    except OverflowError:
    	return 0
    except ValueError:
    	return 0
    if localtime(t)[:3] == tt[:3]:
    	return 1
    else:
    	return 0


def db():
    datum = root.entry.get()    # Wert des Eingabefeldes auslesen
    datum = split(datum, ".")
    tag = datum[0]
    monat = datum[1]
    jahr = datum[2]

    if valid_date(jahr, monat, tag) == 0:
    	hinweis()

    else: 
	...

Nach einigen Test weiß ich, dass die Funktion valid_date() aufgerufen wird. 
Es wird aber kein Wert zurückgegeben. Woran kann das liegen? Wo ist mein
Denkfehler?

Danke + Gruss
Ron




More information about the Python-de mailing list