星期几的计算
初学c++很多不懂,请高手们帮我看一下下边的错误在那里?问题是随便输入一个年月日,要求得出是星期几。已知1年1月1日是星期一。闰年有366天,平年365天。谢谢了急用。
#include <iostream>
using namespace std;
int main()
{int a,b,c,s,i;
int w;
int m;
cin>>a>>b>>c;
{if((a%4==0&&a%100==0)||(a%400==0))
{{ m=0,i=1;
while(i<a)
{
while((i%4==0&&i%100==0)||(i%400==0))
i++;
m=m+1;
}
return m;}
switch(b)
{case 1:w=m*366+(a-m-1)*365+c;break;
case 2:w=m*366+(a-m-1)*365+31+c;break;
case 3:w=m*366+(a-m-1)*365+60+c;break;
case 4:w=m*366+(a-m-1)*365+91+c;break;
case 5:w=m*366+(a-m-1)*365+121+c;break;
case 6:w=m*366+(a-m-1)*365+152+c;break;
case 7:w=m*366+(a-m-1)*365+182+c;break;
case 8:w=m*366+(a-m-1)*365+213+c;break;
case 9:w=m*366+(a-m-1)*365+244+c;break;
case 10:w=m*366+(a-m-1)*365+274+c;break;
case 11:w=m*366+(a-m-1)*365+305+c;break;
case 12:w=m*366+(a-m-1)*365+335+c;break;
}
}
else
{{ m=0,i=1;
while(i<a)
{
while((i%4==0&&i%100==0)||(i%400==0))
i++;
m=m+1;
}
return m;}
switch(b)
{case 1:w=m*366+(a-m-1)*365+c;break;
case 2:w=m*366+(a-m-1)*365+31+c;break;
case 3:w=m*366+(a-m-1)*365+59+c;break;
case 4:w=m*366+(a-m-1)*365+90+c;break;
case 5:w=m*366+(a-m-1)*365+120+c;break;
case 6:w=m*366+(a-m-1)*365+151+c;break;
case 7:w=m*366+(a-m-1)*365+181+c;break;
case 8:w=m*366+(a-m-1)*365+212+c;break;
case 9:w=m*366+(a-m-1)*365+243+c;break;
case 10:w=m*366+(a-m-1)*365+273+c;break;
case 11:w=m*366+(a-m-1)*365+304+c;break;
case 12:w=m*366+(a-m-1)*365+334+c;break;
}
}
}
s=w%7;
switch(s)
{case 0:cout<<"sunday";break;
case 1:cout<<"monday";break;
case 2:cout<<"Tuesday";break;
case 3:cout<<"wednesday";break;
case 4:cout<<"thursday";break;
case 5:cout<<"friday";break;
case 6:cout<<"saturday";break;
}
return 0;
}