Perl mit Date::Calc
Christian Bliß
- perl
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);
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ß
Hallo,
hat sich erledigt, konnte das Problem selbst lösen :D
-> es gab einen Fehler bei der Umrechnung von Datum auf Timestamp, ich hatte vergessen das Datum "vorzubereiten" (Jahr statt 2004 ist 104 und Monat -1)!