hotti: Stringvergleiche sind Mist

Beitrag lesen

s. Thema. Dank Perl gehts ja auch so, dass 01 als Zahl anerkannt wird. Also _Zahlen_ vergleichen (mit dem Zahlenvergleichsoperator) und gut is.

Aber 01.01.1999 ist keine Zahl? Üblich ist eher, die Zahl in einen Timestamp umzuwandeln und zu vergleichen.

Du meinst, das Datum umzuwandeln. Ja klar, mach ich. Gesplittet ergeben sich

d = 01
m = 01
y = 1999

und nach Umrechnen und Zurückrechnen (Scaliger) ergeben sich

dx = 1
mx = 1
yx = 1999

Perl findet, dass d == dx und m == mx und y == yx ist und somit das Datum für OK. Isses ja auch ;-)

Btw., Deine (übliche) Rechnung über den "Timestamp" ist Sekundengenau. Das brauchst eigentlich nicht, wenns nur um Tage geht. Und bei der Prüfung eines Datums like '35.13.1960' gehts mit Time::Local sowieso schon in die Hose.

Viele Grüße,
Horst Haselhuhn

--
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.