Klaus Mock: Ermitteln ob ein Datum gültig ist

Beitrag lesen

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