tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルSelect Case文についての疑問
記事No2855
投稿日: 2006/01/09(Mon) 18:31
投稿者ドットネット見習い
[OSのVer]:Windows XP(SP2)    [VBのVer]:VB.NET

こんにちわ。
お聞きしたいことがあります。カレント日付から"月"の値だけを取得して、上期もしくは
下期を判断
させているロジックを作りました。

具体的には、

    Select Case Today.Month.ToString
     Case "1" To "3"
       下期と判定
     Case "4" To "9"
       上期と判定
     Case Else
       下期と判定
        End Select

というように処理するのですが、10月、11月、12月に関してはいずれも1月と判断されてしまいまし
た。これは文字列として比較しているがために十の位の"1"の部分だけを見て処理されてし
まっている
のでしょうか。

ご存知の方がいらっしゃいましたら教えてください。よろしくお願いします。

[ツリー表示へ]
タイトルRe: Select Case文についての疑問
記事No2856
投稿日: 2006/01/09(Mon) 22:33
投稿者なおこ(・∀・)
お世話になります。

> というように処理するのですが、10月、11月、12月に関してはいずれも1月と判断されてしまいまし
> た。これは文字列として比較しているがために十の位の"1"の部分だけを見て処理されてし
> まっている
> のでしょうか。

文字列として扱わないで、判定すれば済む話のような気がしますが...?

[ツリー表示へ]
タイトルRe: Select Case文についての疑問
記事No2858
投稿日: 2006/01/09(Mon) 22:39
投稿者じゃんぬねっと
参照先http://jeanne.wankuma.com/
> というように処理するのですが、10月、11月、12月に関してはいずれも1月と判断されてしまいました。
> これは文字列として比較しているがために十の位の"1"の部分だけを見て処理されてしまっているのでしょうか。

そう思われるのであれば、ご自分で調べられる域にいらっしゃると思うのですが...
Today.Month.ToString() の結果を式ウォッチなどで見てください。

また、数値を検証する場合に文字列で検証することは、Coding Horror です。
CLR の主役である型を雑に扱うと、必ずやバグの温床となります。
(なおこさんが言いたいこともこれでしょう)

[ツリー表示へ]