Christian Bliß: Perl mit Date::Calc

Beitrag lesen

Hallo,

folgender Quelltext funktioniert leider nicht richtig:

$sql_stamp_min ist der kleinste Timestamp, der aus der Datenbank ausgelesen wurde.
$timestamp ist der aktuelle Stamp

----------------------------------------------------------------
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime($sql_stamp_min);

Anfang ist der 1. Tag des Monats um 0:00:00 Uhr

my @anfang_liste = (0,0,0,1,$Monat,$Jahr);
$anfang_zeitraum = timelocal(@anfang_liste);

while ($anfang_zeitraum < $timestamp) {
  my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime($anfang_zeitraum);
    $Monat+=1;
    $Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat;
    $Jahr+=1900;

print qq|<OPTION value="$anfang_zeitraum">$Monat $Jahr</OPTION>|;

my $anz_tage = Days_in_Month($Jahr,$Monat);  # Anzahl der Tage im aktuellen Monat

my ($Jahr_anfang_neu,$Monat_anfang_neu,$Tag_anfang_neu) = Add_Delta_Days($Jahr,$Monat,1,$anz_tage);

my @anfang_neu_liste = (0,0,0,$Tag_anfang_neu,$Monat_anfang_neu,$Jahr_anfang_neu);  $anfang_zeitraum = timelocal(@anfang_neu_liste);
}
----------------------------------------------------------------

Es werden komischerweise nur die geraden Monate (10. 12. 2. 4. 6. 8. ...) ausgegeben, woran kann das liegen?

MfG
Christian Bliß