Hallo,

folgendes: ich habe den auszug eines scriptes von mir beigefügt in dem
Sekunden aus einem Datumsstring ermittelt werden, anschliessend ein Tag dazu
addiert und wieder zurück in einen String gewandelt wird.
Das funktionierte auch immer einwandfrei. Bis heute morgen.
Da kommt lpötzlich die Fehlermeldung:

Day ´31´ out of range 1..30 at script.pl line 89

Ich verwende das modul timelocal.

Jetzt habe ich mal im Netz geschaut und festgestellt andere haben das
gleiche Problem am 31.10.03 gehabt, aber auch keine richtige Abhilfe
gefunden.

Kann jemand von euch was dazu sagen?!

aus dem Datumsstring 2003-10-31, sollte eigentlich 2003-11-01 werden!!

-------------------------------------
1 use Time::Local

2 my ($year, $mon, $day) = split(/-/, $datestr);
3 my $sec = timelocal(0,0,0,$day,$mon,$year);
4 $sec = $sec + 86400;
5 ($year, $mon, $day) = (localtime $sec )[5,4,3];
6 $year += 1900;
7 my $newfolder = $year.'-'.$mon.'-'.$day;

Der Fehler tritt direkt ab Zeile 3 auf.

Das hier ist nicht das ganze Script! Die Variblen sind natürlich alle
deklariert.

Gruss
Thomas




----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an