Windows Forms で、コンボボックスを3つ用意し、誕生日を入力する画面を作成しています。
実行したいことは以下です。
・未来の日付を入力した場合はエラー
・不正な日付(例:2010/11/31)を入力した場合はエラー
・それ以外は確認画面(OK、キャンセル)を表示
label11にエラーメッセージが表示されるようにしています。
private void AddBt_Click(object sender, EventArgs e) { string year = comboBox1.Text; string month = comboBox2.Text; string day = comboBox3.Text; if (year != "" && month != "" && day != "") { int y = int.Parse(year); int m = int.Parse(month); int d = int.Parse(day); DateTime dt = DateTime.Now; int iYear = dt.Year; //現在の年を取得 int iMonth = dt.Month; //現在の月を取得 int iDay = dt.Day; //現在の日を取得 //生年月日が存在しない時 if (y > iYear) { label11.Text = "生年月日が不正です。"; return; } if (m > iMonth) { label11.Text = "生年月日が不正です。"; return; } else if (m <= iMonth && d > iDay) { label11.Text = "生年月日が不正です。"; return; } label11.Text = ""; } //メッセージボックスの表示 DialogResult result = MessageBox.Show("登録します。よろしいですか?",MessageBoxButtons.OKCancel);
現在ここまで書けています。これだと2018/1/10を選択すると、「10」に引っかかってしまうのか、エラーメッセージが出てしまいます。(※今日が7日だから?)
また、不正な日付を判断させるコードが書けていないので
アドバイスをいただければと思います。宜しくお願いします。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。