给出年月日转换成当日的星期,纠结了。。。已知0年1月1日是周日。
#include
using namespace std;
void W(int month,int day,int year)
{
 long sum,Sum;
 int i,leap,Nleap,k,p;
    if(month<1||month>12)
 {cout<<"你个笨蛋,一年才几个月!"< else if(day<1||day>31)
 {cout<<"笨蛋,一个月几天!"< leap=0;Nleap=0;k=0;
    for(i=0;i {
  if(i%400==0||(i%4==0&&i%100!=0))
   leap++;
  else Nleap++;
 }
    sum=leap*366+leap*365;
 switch(month)
 {
 case 1:k=0;break;
 case 2:k=31;break;
 case 3:k=59;break;
 case 4:k=90;break;
 case 5:k=120;break;
 case 6:k=151;break;
 case 7:k=181;break;
 case 8:k=212;break;
 case 9:k=243;break;
 case 10:k=273;break;
 case 11:k=304;break;
 case 12:k=334;break;
 }
 if(year%400==0||(year%4==0&&year%100!=0)&&month>2)
  k+=day+1;
 else k+=day;
    Sum=sum+k+6;
 p=Sum%7;
 switch(p)
 {
 case 0:cout<<"今天星期日。"< case 1:cout<<"今天星期一。"< case 2:cout<<"今天星期二。"< case 3:cout<<"今天星期三。"< case 4:cout<<"今天星期四。"< case 5:cout<<"今天星期五。"< case 6:cout<<"今天星期六。"< }
}
int main(void)
{
 int a,b,c;
 char d='/';
 while(cin>>a>>d>>b>>d>>c&&(a+b+c)!=0)
  W(a,b,c);
 return 0;
}