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が有効な日付であるかどうかを確認し、結果を印刷します。

bannerAds