Perlで日付が有効かどうかを判定するには?
PerlではTime::Pieceモジュールを使って日付の正当性を判断できます。日付の正当性を判断するには、以下のコードを使用できます。
use Time::Piece;
sub is_valid_date {
my ($date_str) = @_;
my $format = "%Y-%m-%d"; # 日期的格式
my $date = Time::Piece->strptime($date_str, $format);
return defined $date;
}
# 示例用法
my $date1 = "2022-01-01";
my $date2 = "2022-02-30";
if (is_valid_date($date1)) {
print "$date1 是一个合法日期\n";
} else {
print "$date1 不是一个合法日期\n";
}
if (is_valid_date($date2)) {
print "$date2 是一个合法日期\n";
} else {
print "$date2 不是一个合法日期\n";
}
上記のコードでは、is_valid_dateというサブルーチンを定義して日付の有効性を判定します。このサブルーチンは日付文字列を引数として受け取り、その日付を日付オブジェクトとして解釈しようと試みます。解釈に成功したら日付オブジェクトを与えて戻り、失敗したらundefを返します。
サンプルの使い方の中で、それぞれが$date1と$date2が有効な日付であるかどうかを確認し、結果を印刷します。