読者です 読者をやめる 読者になる 読者になる

kopug memo

名古屋で働くとあるWebエンジニアの覚書。

18歳以上の生年月日チェック

Perl

splitのほうが速度的によさそうなので変更。(これくらいじゃ大差ないけど)

sub static_birthday {
    my $date = shift;
    my $args = shift;

    # この年齢以上じゃないと登録できない。
    my $over = $args->{over} || 18;

    return 0 unless &static_date( $date );

    my $birthday_date
        = sprintf("%04d%02d%02d", split( /-/, $date ) );

    my $orz_date
        = sprintf("%04d%02d%02d", Add_Delta_YM( Today, -$over , 0 ) );

    ( $orz_date >= $birthday_date ) ? 1 : 0;
}

sub static_date {
    my $date = shift;

    if ( my ( $y, $m, $d ) = ( $date =~ /^(\d+)-(\d+)-(\d+)$/ ) ) {
        return check_date( $y, $m, $d );
    }
    else {
        return 0;
    }
}