Überprüfen ob Datum erreicht?
Stefan
- perl
Hallo,
mit nachfolgender Funktion ermittle ich das aktuelle Datum:
sub getDateTime
{
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst);
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
if ($sec < 10) {$sec = "0$sec";}
if ($min < 10) {$min = "0$min";}
if ($hour < 10) {$hour = "0$hour";}
if ($mday < 10) {$mday = "0$mday";}
$mon++; if ($mon < 10) {$mon = "0$mon";}
$year += 1900;
return ("$mday.$mon.$year");
}
Wie kann ich aber nun prüfen, ob das Datum 01.03.2006 erreicht ist. Gibt es in Perl dafür eine Funktion. Oder muss ich den Tag, Monat, Jahr mittels Stringvergleich prüfen?
Danke im voraus...
Hallo Stefan,
Wie kann ich aber nun prüfen, ob das Datum 01.03.2006 erreicht ist. Gibt es in Perl dafür eine Funktion. Oder muss ich den Tag, Monat, Jahr mittels Stringvergleich prüfen?
ich habe dafür bisher Time::Local benutzt. Das ist glücklicherweise sogar ein Standardmodul.
Das würde dann in etwa so aussehen:
#!/usr/bin/perl -wT
use strict;
use Time::Local;
# BEACHTE: die Monate gehen von 0..11 statt 1..12
my $time = timelocal(00, 00, 00, 03, 00, 2006);
if(time>$time) {
...
}
Gruß,
Benne
Hi Benne,
danke dir. Ganz klar ist mir das aber noch nicht.
Ich werde mal google bemühen...
bye
stefan
Hallo Stefan
Hallo,
mit nachfolgender Funktion ermittle ich das aktuelle Datum:
sub getDateTime
{
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst);($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
if ($sec < 10) {$sec = "0$sec";}
if ($min < 10) {$min = "0$min";}
if ($hour < 10) {$hour = "0$hour";}
if ($mday < 10) {$mday = "0$mday";}$mon++; if ($mon < 10) {$mon = "0$mon";}
$year += 1900;
return ("$mday.$mon.$year");
}
Damit ermittelst du kein Datum, sondern formatierst es.
Wesentlich einfacher ginge das mit sprintf
sub frmTime
{
my ($mday,$mon,$year) = (localtime(time))[3..5];
$year += 1900;
return sprintf "%02d.%02d.%04d", $mday, ++$mon, $year;
}
Wie kann ich aber nun prüfen, ob das Datum 01.03.2006 erreicht ist. Gibt es in Perl dafür eine Funktion. Oder muss ich den Tag, Monat, Jahr mittels Stringvergleich prüfen?
wieso willst du einen String vergleichen, Vergleich doch die Timestamps. wie du ein Datum umwandeln kannst, hat dir Benne ja schon gesagt.
Struppi.