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.