c#窗体应用程序实现判断用户输入的日期是否正确,要用if嵌套完成

题目是这样的:让用户输入年月日,按下button后在lable4里显示日期是否正确。正确则显示“格式正确”,年份错误显示“年份格式错误”,月份错误显示“月份格式错误”,日期错误显示“日期格式错误”,要求用if 嵌套实现。(图一所示

img



图二图三是我自己做的,但每当判断二月的时候就会出错,不知道是怎么回事。求大神讲解!!!!!!

img

img

我们老师自己出的题自己打代码都打懵逼了😂😂😂

string Nian = this.textBox1.Text.Trim();
string Yue = this.textBox2.Text.Trim();
string tian = this.textBox3.Text.Trim();
DateTime dt;
if (string.IsNullOrEmpty(Nian))
{
MessageBox.Show("请输入年");
return;
}
else if (Regex.IsMatch(Nian, @"^[0-9]$") == false)//验证是否是数字类型
{
MessageBox.Show("请输入正确年格式");
return;
}
else if ((DateTime.TryParseExact(Nian, "yyyy", null, DateTimeStyles.None, out dt) || DateTime.TryParseExact(Nian, "yyyy", null, DateTimeStyles.None, out dt)) == false)
{
MessageBox.Show("请输入正确年格式");
return;
}
else if (string.IsNullOrEmpty(Yue))
{
MessageBox.Show("请输入月");
return;
}
else if (Regex.IsMatch(Yue, @"^[0-9]
$") == false)//验证是否是数字类型
{
MessageBox.Show("请输入正确月格式");
return;
}
else if ((DateTime.TryParseExact(Yue, "MM", null, DateTimeStyles.None, out dt) || DateTime.TryParseExact(Yue, "MM", null, DateTimeStyles.None, out dt)) == false)
{
MessageBox.Show("请输入正确月格式");
return;
}
if (string.IsNullOrEmpty(tian))
{
MessageBox.Show("请输入天");
return;
}
else if (Regex.IsMatch(tian, @"^[0-9]*$") == false)//验证是否是数字类型
{
MessageBox.Show("请输入天确日格式");
return;
}
else if ((DateTime.TryParseExact(tian, "dd", null, DateTimeStyles.None, out dt) || DateTime.TryParseExact(tian, "dd", null, DateTimeStyles.None, out dt)) == false)
{
MessageBox.Show("请输入天确日格式");
return;
}
//组合到一起从新验证
string de = Nian + Yue + tian;
if ((DateTime.TryParseExact(de, "yyyyMMdd", null, DateTimeStyles.None, out dt) || DateTime.TryParseExact(de, "yyyyMMdd", null, DateTimeStyles.None, out dt)) == false)
{
MessageBox.Show("请输入天确年月日格式");
return;
}

注意 年 与天都需要输入2位数 比如 月 1-12 需要输入01-02-03-04......10-11.12 天也是如此