Kalender
marcel
- perl
0 Tom1tk0 marcel0 Peter Kaufmann0 marcel0 Struppi0 marcel0 marcel0 Struppi0 Peter Kaufmann
0 Matti Maekitalo
hallo zusammen!
ich habe folgendes Problem:
ich habe eine verzeichnisstruktur /jahr/monat/tag
in jedem "tagesordner" liegen mehere dateien ab, die zusammengefasst werden sollen.
das wäre ja nicht so das problem, aber dies alles soll über ein html-formular machbar sein.
d.h. man gibt ein startpunkt und einen endpunkt an, z.B. von 20040328 bis 20040228.
prinzipiell kann man das startdatum vom enddatum substrahieren (+1), aber wie kann zwischen monatswechsel unterschieden werden???
vielen dank im voraus
marcel
PS:
es gab bestimmt schon mal ähnliche einträge über dieses thema...
leider konnte ich das forum nicht durchsuchen, weil "der server wohl ausgelastet ist".... ?!
!ollaH
Ich kenn mich zwar in Perl nicht aus, aber konvertiere doch das Datum in (ich weiß den Fachausdruck leider nicht) die 1970er-Schreibweise:
01.01.1970 == 00000000000000
Es gibt in php eine Funtkion namens time() und date() (für PERL mußt halt mal suchen, wie die da heißen!). Mit denen kannst Du das hin und her konvertieren.
Wenn Du also dann die Sekundenanzahl seit 1970 hast sind Monatswechsel auch kein Problem mehr.
Greets Tom1tk
danke schonmal...
aber wie soll ich denn die sekunden (nach 1970) von dem jeweiligen tag herausbekommen
Bsp.:
Ich will heute ->"1080553180" den Wert vom 27.02.04 wissen.
Ich weiß natürlich, das ich die neunundzwanzig tage von diesem Monat und noch 2 vom letzten Monat zurückrechnen muss, aber wie kann man dies automatisieren?
gruß
marcel
Hallo marcel,
aber wie soll ich denn die sekunden (nach 1970) von dem jeweiligen tag herausbekommen
perldoc Time::Local (oder http://www.gsp.com/cgi-bin/man.cgi?section=3&topic=Time::Local)
Bsp.:
Ich will heute ->"1080553180" den Wert vom 27.02.04 wissen.
peter@venus:~> perl -e 'use Time::Local; print timelocal(0,0,0,27,01,2004),"\n";'
1077836400
Grüße,
Peter
super das funktioniert!!!
allerdings geht das nur wenn ich es direkt in die konsole eintippe...
wenn ich es in einem perl script habe, kommt folgende fehlermeldung:
~/stat> perl -w test.pl
"use" not allowed in expression at test.pl line 4, at end of line
syntax error at test.pl line 4, near "use Time"
Execution of test.pl aborted due to compilation errors.
~/stat>
So sieht meine Datei (test.pl) aus:
------------------------------------
!#/usr/bin/perl -w
use Time:Local;
print timelocal(0,0,0,27,01,2004);
------------------------------------
danke schonmal
use Time:Local;
Na, da fehlt doch was;-)
Struppi.
Hallo Struppi!
Was soll denn da fehlen?!
Meinst du das Modul Time:Local??
Aber das kann doch gar nicht fehlen, weil es doch in der Konsole auch aufrufen geht...
Oder verstehe ich da grundlegend etwas nicht...?
Gruß
Marcel
hat sich erledigt!!! danke schonmal!
so funktioniert es!!!
#!/usr/bin/perl
use Time::Local;
$time= timelocal(0,0,0,27,01,2004);
print $time;
gruß
marcel
Was soll denn da fehlen?!
Meinst du das Modul Time:Local??
Nein.
Schau dir mal die Antwort von Peter an:
peter@venus:~> perl -e 'use Time::Local; print timelocal(0,0,0,27,01,2004),"\n";'
1077836400
und dann deinen Quellcode:
!#/usr/bin/perl -w
use Time:Local;
print timelocal(0,0,0,27,01,2004);
Da fehlt genau ein Zeichen.
Struppi.
Hallo marcel,
Was soll denn da fehlen?!
Meinst du das Modul Time:Local??
da fehlt einfach ein Doppelpunkt: Time::Local;
^^
Grüße,
Peter
use Mosche;
Der fehlende Doppelpunkt bei Time::Local wurde dir bereits berichtet.
Außerdem ist deine Shebang-Zeile falsch:
!#/usr/bin/perl -w
#!/usr/bin/perl -w
use Tschoe qw(Matti);