PowerShellで日付をチェックする

記事内に広告が含まれています。

PowerShellで必要な感じがするのが「日付チェック」処理。
でも標準ではないようなので、自作してみます。

日付け型をParseさせてみる

自力で大の月や小の月、13月や32日などの不正チェック自力でチェックするのはうっとうしいし、うるう年も面倒です。

ということで今回は入力された文字列を日付け型に代入できるかどうかで判断します。

例外エラーをcatchしたら日付けエラーにする

今回は[Datetime]::Parse()を使って、Parseした結果が例外エラーなら日付け不正、正常終了なら日付け終了ということで関数作って見ます。
関数は

function IsDate([string]$check_date)
{
    try
    {
        [Datetime]::Parse($check_date)
	    $True
    }
    catch
    {
        $False
    }
}

で、$check_dateに入力された日付けが入って来ます。

実行結果は

PS C:> IsDate "2014-09-11"
2014年9月11日 0:00:00
True

PS C:> IsDate "2014-09-31"
False

PS C:> IsDate "2014-09-11 23:59:59"
2014年9月11日 23:59:59
True

PS C:> IsDate "2014-09-11 24:59:59"
False

となり、なんとなく行けてますね。
思わぬ副作用として時間もチェックできることになってしまいました。

うるう年も行けてるかと

PS C:> IsDate "2014-02-29"
False

PS C:> IsDate "2012-02-29"
2012年2月29日 0:00:00
True
PS C:>
タイトルとURLをコピーしました