hallo kaeoten,
perldoc Time::Local ;-)
Das ist IMHO in diesem Falle nicht gerade das beste Modul.
Date::Manip koennte eventuell etwas für Dich sein, aber für so etwas simples kannst Du auch selbst etwas machen;-)
<code>
$date = '31.4.2002';
print "$date ist ", is_date_valid($date)?"gueltig":"ungueltig","\n";
$date = '2002/3/2';
print "$date ist ", is_date_valid($date)?"gueltig":"ungueltig","\n";
sub is_date_valid
{
my(@date_values) = split(/[/.-]/,shift,3); # default ist dd.mm.yyyy
@date_values = reverse @date_values if($date_values[0] >31); # array umdrehen falls yyyy.mm.dd
return 0 if $date_values[1] <1 or $date_values[1]>12; # monat stimmt nicht
my(@m_days) = qw(0 31 28 31 30 31 30 31 31 30 31 30 31);
$m_days[2] = 29 if is_leap_year($date_values[2]);
return 0 if ($date_values[0] <1 or $date_values[0]>$m_days[$date_values[1]]); # tag stimmt nicht
return 1;
}
sub is_leap_year # schaltjahrbestimmmung
{
my($year) = shift;
return 0 unless $year % 4 == 0;
return 1 unless $year % 100 == 0;
return 0 unless $year % 400 == 0;
return 1;
}
</code>
Grüße
Klaus