目次

ニュース

日記カテゴリ

書庫

VBで日付型のチェックをするときに
IsDateを利用してますか?

Microsoft.VisualBasic.Information.IsDate(value as Object)の中身をのぞくと

1. value Is NothingだとFalseを返す
2. TypeOf? value Is DateTimeだとTrueを返す
3. TypeOf? value Is Stringだと、Stringにキャストして DateTimeにキャストする
4. 例外が発生しなかったら、Trueを返す
5. 例外が発生したら握りつぶして、Falseを返す

う~ん、例外握りつぶしちゃうんだ。
あまり例外って起こしたくないので、これを知ってから利用機会が減りました。

やっぱり正規表現の方が書式も指定できるしスマートかな。

投稿日時 : 2006年10月17日 21:09
Feedback
  • # re: VBで利用するIsDateって結構大胆なの!?
    じゃんぬ
    Posted @ 2006/10/17 21:26
    2.0 からは System.DateTime.TryParse メソッド。
    1.1 以前は、自作ですね。

    正しい日付かどうかをチェックする (IsDate)
    http://jeanne.wankuma.com/tips/validation/isdate.html
  • # re: VBで利用するIsDateって結構大胆なの!?
    ゆき
    Posted @ 2006/10/17 22:25
    じゃんぬさんのサイトにバッチリ掲載されていたんですね。
    確認してませんでした。お恥ずかしい。

    1.1以前は、自作がベストなんですね。
    ありがとうございます。
  • # re: VBで利用するIsDateって結構大胆なの!?
    ognac
    Posted @ 2006/10/17 22:35
    ognacです。私も自己主張します。
    http://blogs.wankuma.com/ognac/archive/2006/07/17/32819.aspx
  • # re: VBで利用するIsDateって結構大胆なの!?
    Jitta
    Posted @ 2006/10/18 21:24
    > う~ん、例外握りつぶしちゃうんだ。
    ん???私は‘有り’だと思いますよ。
     DateTime にキャストするという処理にとっては業務例外ですが、IsDate にとっては検査例外です。この読み替えは、有りだと思います。


    > やっぱり正規表現の方が書式も指定できるしスマートかな。
    各国語対応。。。
  • # re: VBで利用するIsDateって結構大胆なの!?
    ゆき
    Posted @ 2006/10/18 22:35
    >Jittaさん
    検査例外というのは、
    IsDateの機能(日付型かどうか)の目的を達成するために、
    発生している例外だから大丈夫ということでしょうか?

    確かにDateTime.Parseにしたら例外だけど、
    IsDateにしたら予期している例外ですね。(勘違いしていたら教えてくださいね。)

    >各国語対応。。。
    そこまで考えてませんでした。。
タイトル
名前
Url
コメント 

Blog 利用状況