#include <iostream>
using namespace std;
int main()
{
int m,d,y,num;
cin>>y>>m>>d;
if(m>12){
cout<<"Illegal";
return 0;
}
switch(m)
{
case 12:num+=30;if(m==12&&d>31){cout<<"Illegal";return 0;};
case 11:num+=31;if(m==11&&d>30){cout<<"Illegal";return 0;};
case 10:num+=30;if(m==10&&d>31){cout<<"Illegal";return 0;};
case 9:num+=31;if(m==9&&d>30){cout<<"Illegal";return 0;};
case 8:num+=31;if(m==8&&d>31){cout<<"Illegal";return 0;};
case 7:num+=30;if(m==7&&d>31){cout<<"Illegal";return 0;};
case 6:num+=31;if(m==6&&d>30){cout<<"Illegal";return 0;};
case 5:num+=30;if(m==5&&d>31){cout<<"Illegal";return 0;};
case 4:num+=31;if(m==4&&d>30){cout<<"Illegal";return 0;};
case 3:num+=28;if(m==3&&d>31){cout<<"Illegal";return 0;};
case 2:num+=31;
case 1:num+=d;if(m==1&&d>31){cout<<"Illegal";return 0;};
}
if(y%100==0)
{
if(y%400==0)
{
if(m>2) {num+=1;}
if(d>29&&m==2)
{
cout<<"Illegal";
return 0;
}
}
else {
if(d>28&&m==2){
cout<<"Illegal";
return 0;}
}
}
else if(y%4==0)
{
if(m>2){num+=1;}
if(d>29&&m==2)
{
cout<<"Illegal";
return 0;
}
}
else
{
if(d>28&&m==2)
{
cout<<"Illegal";
return 0;
}
}
cout<<num;
return 0;
}
这是一个C++程序,用于输入月、日、年并判断是否为合法日期。如果日期合法,程序将输出该日期在当年的第几天;否则,输出"Illegal"。

被折叠的 条评论
为什么被折叠?



