Datum verändern
petz
- perl
0 Biesterfeld0 Detlef
Hallo
Ich versuche Dateinamen aufgrund eines Datums zu erzeugen. Konkret möchte ich, wenn das aktuelle Datum ein Erster eines Monats ist, dass eine Datei einen Namensabhängegen Zusatz im Namen erhält. D.h. am 1.12.04 soll die Datei file.html
umbenannt werden in file1104.html. Dazu habe ich folgendes Skriptlein gebastelt:
...
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
$Monat+=1;
$Jahrestag+=1;
$Jahr-=100;
$Monatstag1 = $Monatstag; #monatstag einstellig
$Jahr1 = $Jahr; #jahr einstellig
$Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat;
$Jahr = $Jahr < 10 ? $Jahr = "0".$Jahr : $Jahr;
$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;
#Prüfen, ob bereits ein File besteht
if (-e "file.html") {
#Am ersten des Monats, bestehende Auswertung umbenennen und Eintrag in history-File vornehmen
if ($Monatstag == 1) {
if ($Monat1 == 1) {
$Vormonat = 12;
$Jahr -= 1;
}
else{
$Vormonat -= $Monat1;
$Vormonat = $Vormonat < 10 ? $Vormonat = "0".$Vormonat : $Vormonat;
}
rename("file.html","file".$Vormonat.$Jahr.".html");
open(HISTORY, ">>hist");
print(HISTORY "<br><a href="file".$Vormonat.$Jahr.".html">Statistik ".$Vormonat."/".$Jahr."</a>");
close(HISTORY)
}
}
Leider entspricht hier der Vormonat nicht (bezogen auf 1.12.) 11, sondern 00. Sieht wer von Euch direkt das Problem?
Danke für Eure Hinweise
Grüsse
Hej,
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
[ ... ]
Aus dieser Deklaration geht an keiner Stelle die Initialisierung von $Monat1 oder $Vormonat hervor. Annahme sie sind nicht initialisiert und somit haben sie den Wert 0!
#Prüfen, ob bereits ein File besteht
if (-e "file.html") {
#Am ersten des Monats, bestehende Auswertung umbenennen und Eintrag in history-File vornehmen
if ($Monatstag == 1) {
if ($Monat1 == 1) {
$Vormonat = 12;
$Jahr -= 1;
}
$Monat1 != 1
else{
$Vormonat -= $Monat1;
$Vormonat = 0 - 0 =0
$Vormonat = $Vormonat < 10 ? $Vormonat = "0".$Vormonat : $Vormonat;
$Vormonat = 00;
}
[...]
Kanns daran gelegen haben?
Beste Grüße
Biesterfeld
Leider entspricht hier der Vormonat nicht (bezogen auf 1.12.) 11, sondern 00. Sieht wer von Euch direkt das Problem?
Danke für Eure Hinweise
Grüsse
Hi Petz,
ich habe zwar keine große Ahnung von Perl(syntax)
aber ich glaube das Problem ist allgemeiner.
veruche doch mal(sinngemäß) folgendes einzubinden:
$monat_aus_array = [0,Jan,Feb,...,Dez]
meine gedanken dazu:
-Auswertung des Arrays beginnt mit 0 ... Monat 0 gibt es nicht
-für Monatswert den wert aus arry nehmen.
eventuell habe ich dich aber falsch verstanden.
Gruß
Detlef