Wasser: localtime fehler oder "Das Ende der Welt"

Beitrag lesen

Hallo Forumer und Forumerinnen,

es ist schon eine ganze Zeit lang her, als ich regelmäßig hier im Forum war. Aber ich stehe mal wieder vor einem Problem und da viel mir das gute alte selfhtml-Forum ein....

Beim rumspielen mit localtime viel mir auf, dass die Funktion bei manchen in der Zukunft liegenden Werten Sekunden das Jahr 1970 ausspuckte.
Ich bin mir sicher, dass das bekannt ist, habe aber hier nicht finden können.

Ich hab das Musterscript (von selfhtml) mal schnell in ne Schleife gepackt und musste sehen, das ende der Zeitrechnung ist bereits 2037 erreicht ist, besser gesagt, wir fallen dan in das Jahr 1902 um von dort an, bis ins Jahr 1970 zu leben und im Jahr 1970 werden wir dann hängenbleiben.

Gibt es bereits eine neuere Funktion, die etwas zukunftssicherer ist, oder mache ich da irgendwo einen systematischen Fehler?

Ich hab das Schleifenscript mal unten angehängt.
das Ergebnis des Scriptes könnt Ihr Euch für kurze Zeit unter:
http://www.wasser.de/telefon-alt/forum/test.pl ansehen.
Danke für Eure Hilfe!

Gruß Wilm T. Klaas (alias Wasser)

---------------------------------------
#!/usr/bin/perl -w

use strict;
use CGI::Carp qw(fatalsToBrowser);

print "Content-type: text/html\n\n";

my $i = 1;

while ($i <= 1000){
        #jaja, das stimmt nicht 100% sollte aber zum testen reichen
 my $gtime = $i * 3600 * 24 * 365;

my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,
     $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime($gtime);
 my $CTIME_String = localtime($gtime);
 $Monat+=1;
 $Jahrestag+=1;
 $Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat;
 $Monatstag = $Monatstag < 10 ? $Monatstag = "0".$Monatstag : $Monatstag;
 $Stunden = $Stunden < 10 ? $Stunden = "0".$Stunden : $Stunden;
 $Minuten = $Minuten < 10 ? $Minuten = "0".$Minuten : $Minuten;
 $Sekunden = $Sekunden < 10 ? $Sekunden = "0".$Sekunden : $Sekunden;
 $Jahr+=1900;
 my @Wochentage = ("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
 my @Monatsnamen = ("","Januar","Februar","M&auml;rz","April","Mai","Juni",
           "Juli","August","September","Oktober","November","Dezember");

print "$Jahr<br>\n";

$i++;
 }