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:>