こんばんわ
プログラミング初心者です
VS2010
C#で書いています。
C#
1 2 protected void btn_Click(object sender, EventArgs e) 3 { 4 string year = Txtyear.Text;//年の値を取得 5 string month = Txtmonth.Text;//月の値を取得 6 string date = Txtday.Text;//日の値を取得 7 string period = Txtperiod.Text;//期間の値を所得 8 9 string hiduke; 10 hiduke = year + "-" + month + "-" + date;//指定された日付 11 12 //int mon; 13 //month = Convert.ToString(month); 14 //mon = Convert.ToInt32(month); 15 //int mon = int.Parse(month);//月を数値に変換 16 //int day = int.Parse(date);//日を数値型に変換 17 string errMsg = string.Empty; 18 19 if (shiteiyear == null || shiteimonth == null || shiteidate == null ) 20 { 21 errMsg = errMsg + "日付を入れてください\n"; 22 } 23 else if (shiteidate > 31 || shiteimonth > 12) 24 { 25 errMsg = errMsg + "日付は1月31日~12月31日の間で入力してください\n"; 26 } 27 else if( ) { 28 //Date型に変換できるかどうか確認したい 29 } 30 else 31 { 32 this.GetSum(); 33 } 34 } 35
ボタンをクリックすると4つあるテキストボックスの値を取得し、その値の結果で処理を変えるものを書きたいです。
(エラーの場合の処理です)
テキストボックスはそれぞれ、年・月・日・期間の数字の値ですがstring型です。
全てがきちんと正しい日付の値を入力してくれればGetSum()が実行されるというものですが、入力された文字のエラーチェックをしたいです。
やりたいこととしては、
・まず、空だった場合
if文の1番最初にかいていますがテキストボックスの値がnullだった場合(キャストのさい”0”を返す?)
・そして有効な日付が入力されているかのチェック
13月や32日以降の日付を入力した場合
数値の比較をしたいのですが、string型のため比較ができません
int型に変えたいのですがうまくできません
Int.Paese、atoi関数などで書いてみましたがどうしてもエラーがでてしまいます…。
・最後に日付型がどうかの判別
これはもしかしたら上記の13月以降32日以降の判定と同じに処理できる…??
そもそもの考えが色々と間違っているのでしょうか?
アドバイスよろしくおねがいいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。