Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Perl - mit Datum rechnen und Ordner selektieren

Frage Entwicklung Perl

Mitglied: xplayer2005

xplayer2005 (Level 1) - Jetzt verbinden

14.11.2006, aktualisiert 16.11.2006, 10357 Aufrufe, 8 Kommentare

Hallo,

ich lese das Datum aus dem Ordnernamen ein, jetzt soll geprüft werden ob das eingelesene Datum älter als 5 tage ist..

wie mache ich das?



mein Problem ist das ich nicht weis wie ich in Perl mit dem Datum rechne..


für Ideen bedanke ich mich vorab
Mitglied: 6890
14.11.2006 um 12:52 Uhr
hi,

also einfachste methode ist die:
snippet
01.
# in dieser var stehen die sekunden seit 01.01.1970 
02.
my $time=time(); 
03.
 
04.
# hier stehen die 5 tage in sekunden (86400 hat der tag * 5 tage) 
05.
my $alter = 86400 * 5; 
06.
 
07.
# hier steh das maximale alter wie alt dateien sein dürfen (jetzt - 5 tage) 
08.
my $maxAlter = $time - $alter;
snippet end

ansonsten gibt es noch das modul Date::Calc. mit dem kannst du auch datumsberechnungen machen.

http://search.cpan.org/~stbey/Date-Calc-5.4/Calc.pod

Mit freundlichen Grüßen godlike P
Bitte warten ..
Mitglied: todason
14.11.2006 um 12:53 Uhr
Hallo,
anhand dieses Beispiels kannst du erkennen wie Perl das Datum verarbeitet:
sub timestamp {

(my $sec,my $min,my $hour,my $mday,my $mon,my $year) = localtime(time); #Systemzeit auslesen
$year += 1900; #Jahr zählt von 1970
$mon +=1; #Monat 0-11
my $stamp = sprintf("%02d:%02d:%02d-%02d.%02d.%04d",$hour,$min,$sec,$mday,$mon,$year);

return $stamp;
}

Gruss
Todason
Bitte warten ..
Mitglied: xplayer2005
14.11.2006 um 15:25 Uhr
ja und wie mach ich aus meinem eingelesenem Datum - 29.10.2006 - so eine Sekunden Zahl damit ich die beiden vergleichen kann??

das war mein eigentliches Problem
Bitte warten ..
Mitglied: xplayer2005
14.11.2006 um 15:36 Uhr
zur verdeutlichung. is vielleicht auch einfacher so...

wenn ich ne datei mit -M "Datei"; aufrufe bekomm ich ja das alter dieser in Tagen zurück.

was ich jetz gerne berechnen würd ist wie "alt" z.B. ein Ordner ist der 12.10.2006 heist bzw. aus dem ich 12.10.2006 ausgelesen hab.

ich stell mir das so vor das ich irgentwie den Ausdruck "12.10.2006" in Sekunden umgerechnet bekomm (denke einfach rechenen wird ned gehn wegen den schaltjahren...)
dann von dem heutigen Datum/Sekundenzahl abziehe und dann entsprechend ein Ergebniss bekomme, in Tagen oder Sekunden is dann egal.. und zu guter letzt vergleiche ob der Ordner/das eingelesene Datum jetzt älter is als 5 Tage oder nicht...


Danke.
Bitte warten ..
Mitglied: xplayer2005
14.11.2006 um 15:36 Uhr
zur verdeutlichung. is vielleicht auch einfacher so...

wenn ich ne datei mit -M "Datei"; aufrufe bekomm ich ja das alter dieser in Tagen zurück.

was ich jetz gerne berechnen würd ist wie "alt" z.B. ein Ordner ist der 12.10.2006 heist bzw. aus dem ich 12.10.2006 ausgelesen hab.

ich stell mir das so vor das ich irgentwie den Ausdruck "12.10.2006" in Sekunden umgerechnet bekomm (denke einfach rechenen wird ned gehn wegen den schaltjahren...)
dann von dem heutigen Datum/Sekundenzahl abziehe und dann entsprechend ein Ergebniss bekomme, in Tagen oder Sekunden is dann egal.. und zu guter letzt vergleiche ob der Ordner/das eingelesene Datum jetzt älter is als 5 Tage oder nicht...


Danke.
Bitte warten ..
Mitglied: 6890
15.11.2006 um 15:05 Uhr
mit
01.
my $alterInSekunden = (stat(datei oder ordner))[9];
bekommst du das alter seit der letzten änderung in sekunden zurückgegeben...

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: xplayer2005
16.11.2006 um 12:54 Uhr
ne das war nicht mein Problem.

ich will ja nicht das alter der Letzten Änderung sondern das eingelesende datum in sekunden umwandeln

--habs aber mitlerweile selbst rausbekommen:

---
use Time::Local;

timelocal(0,0,0,$extDay,$extMon-1,$extYear) #liefert das alter in secunden
--

die ersten drei werte sind secunde,Minute,Stunde, da ich die nciht einlese setze ich die auf 0

die nächsten drei sind die eingelesenen Variablen extrahierterTag, extrahierterMonat (in Perl wie immer -1 nicht vergessen), extrahiertesJahr



Trozdem danke für die zahlreichen Antworten
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...