星期几的计算

luoyangshanger 2009-03-23 10:55:20
初学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;
}
...全文
193 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
毛员外 2009-03-24
  • 打赏
  • 举报
回复
有大月小月

28天
30天
31天
貌似还有29!

慢慢算吧
a64311937 2009-03-24
  • 打赏
  • 举报
回复
< <" 这个符号错了吧~~你重新打下~看看
cnnbjwq 2009-03-24
  • 打赏
  • 举报
回复
对啊,关键是算法,有大月,小月的话,可以设定一个关于月份的数组,(应该可以的吧)
pengzhixi 2009-03-23
  • 打赏
  • 举报
回复
问题是随便输入一个年月日,要求得出是星期几。已知1年1月1日是星期一
先算出和1年1月1日相差多少天,然后除以7,余数为几就是星期几

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧