using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace NextDate
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
int y,m,d;
y =Convert.ToInt32(textBox1.Text);
m = Convert.ToInt32(textBox2.Text);
d = Convert.ToInt32(textBox3.Text);
bool f;
f=((y%4==0)&&(y%100!=0)||(y%100==0));
switch (m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(d<31)
d++;
else
{
if(d==31)
{
if(m!=12)
{
m++;
d=1;
}
else
{
y++;
m=1;
d=1;
} }
}
break;
case 4:
case 6:
case 9:
case 11:
if(d<30)
d++;
else
{
if(d==30)
{
m++;
d=1;
}
}
break;
case 2:
if (f)
{
if (d < 28)
d++;
else
{
if (d == 28)
{
m++;
d = 1;
}
break;
}
}
else
{
if (d < 29)
d++;
else
{
if (d == 29)
{
m++;
d = 1;
}
break;
}
}
}
} private void button2_Click(object sender, EventArgs e)
{
textBox1.Text= "";
textBox2.Text = "";
textBox3.Text = "";
}
}
}
调试弹出:错误 1 控制不能从一个 case 标签(“case 2:”)贯穿到另一个 case 标签
G:\垃圾\NextDate\NextDate\Form1.cs 73 20 NextDate在VC上用C++可以调试成功,可是当我输入2000年13月2日,下一个还是2000年13月2日,再说也没有13
月啊!
帮我看看咯,谢谢啦!
c# case后面必须跟break
if (f)
{
if (d < 28)
d++;
else
{
if (d == 28)
{
m++;
d = 1;
}
break;
}
}
else
{
if (d < 29)
d++;
else
{
if (d == 29)
{
m++;
d = 1;
}
break;
}
}
break;//加这个就不报错了
case 不能嵌套!