| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 412 人关注过本帖
标题:用蔡勒公式求星期几,得不到想要的结果,紧急
只看楼主 加入收藏
一路看天
Rank: 1
来 自:广西
等 级:新手上路
帖 子:12
专家分:4
注 册:2012-11-26
结帖率:0
收藏
已结贴  问题点数:5 回复次数:5 
用蔡勒公式求星期几,得不到想要的结果,紧急
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int y,m,d;
    while(cin>>y>>m>>d){
            if(y==0&&m==0&&d==0) break;
            if(y%400==0||(y%4==0&&y%100!=0))
            {  if(m==2&&(d<1||d>29)) {cout<<-1<<endl;continue;}
               if((m==4||m==6||m==9||m==11)&&(d<1||d>30)) {cout<<-1<<endl;continue;}
               if((m==1||m==3||m==5||m==7)&&(d<1||d>31)) {cout<<-1<<endl;continue;}
               if((m==8||m==10||m==12)&&(d<1&&d>31)) {cout<<-1<<endl;continue;}}
            else { if(m==2&&(d<1||d>28)) {cout<<-1<<endl;continue;}
                   if((m==4||m==6||m==9||m==11)&&(d<1||d>30)) {cout<<-1<<endl;continue;}
                   if((m==1||m==3||m==5||m==7)&&(d<1||d>31)) {cout<<-1<<endl;continue;}
                   if((m==8||m==10||m==12)&&(d<1&&d>31)) {cout<<-1<<endl;continue;}}
            if(m<3){ m=m+12;
                     y=y-1;}
            y=y%100;
            int w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
            switch(w+1){
                        case 0:cout<<7<<endl;break;
                        case 1:cout<<1<<endl;break;
                        case 2:cout<<2<<endl;break;
                        case 3:cout<<3<<endl;break;
                        case 4:cout<<4<<endl;break;
                        case 5:cout<<5<<endl;break;
                        case 6:cout<<6<<endl;break;}}
  
    return EXIT_SUCCESS;
}
目测蔡勒公式没用错啊,可就是得不到正确结果,请指点迷津
搜索更多相关主题的帖子: namespace continue include 
2013-03-01 16:29
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:3 
        int w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
        switch(w+1){
            case 0:cout<<7<<endl;break;
            case 1:cout<<1<<endl;break;
            case 2:cout<<2<<endl;break;
            case 3:cout<<3<<endl;break;
            case 4:cout<<4<<endl;break;
            case 5:cout<<5<<endl;break;
            case 6:cout<<6<<endl;break;
        }
如果 w 为6的时候 w+1 就是7了,没有case 7;

case 0 估计是执行不到的

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-03-01 16:38
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
或者你把case 0 改成case 7 就ok 了

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-03-01 16:39
一路看天
Rank: 1
来 自:广西
等 级:新手上路
帖 子:12
专家分:4
注 册:2012-11-26
收藏
得分:0 
回复 3楼 yuccn
谢了,可以解决一部分问题,可还是没能通过
2013-03-01 16:46
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
调试下吧

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-03-01 16:57
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:3 
。。。kk

仰望星空...........不忘初心!
2013-03-01 17:00
快速回复:用蔡勒公式求星期几,得不到想要的结果,紧急
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017080 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved