C语言课程设计,万年历算星期几,只要随便说出公元几几年几月几日就可以马上算出是星期几. 阿里噶道/跪

 我来答
Jerfym2
2016-06-14 · TA获得超过476个赞
知道小有建树答主
回答量:394
采纳率:0%
帮助的人:204万
展开全部
万年历算星期几
只要随便说出公元几几年几月几日就可以马上算出是星期几.
只要计算出日的代码,月份代码,年份代码.三个加起来除以七的余数就是星期几,(如余数是三,则就是星期三).
日的代码计算:日的代码最简单,就是它本身,是几号就是几.
月份代码计算:月份代码也很简单,下面有十二个数:1 4 4 7 2 5 7 3 6 1 4 6,分别代表一至十二月份每个月的代码.比如,九月份的代码为6.(据来宾介绍,他是用逆推的方法,计算出这12个月份代码的,即知道某年某月某日是星期几,反过来推算月份代码.)
年份代码计算:年份代码相对比较复杂,先记住2000年对应的年份代码是4,这是基础代码,牢记即可.
假如大于2000年,比如2010年,则对应的年份代码是(2010-2000)÷4=2……2,再用基数代码4减去2倍的商加上余数再加1.即4-2×2+2+1=3,则2010年对应的年份代码为3.如果没有余数,即润年,则余数后面的1也不用加.比如2008年,对应的年份代码为0.
假如小于2000年,比如1991年,则对应的年份代码是(2000-1991)÷4=2……1,再用基数代码4加上2倍的商减去余数.即4+2×2-1=7,则1991年对应的年份代码为7.
再记住1个特殊情况,即润年的3到12月份到最后要加1.
1949年10月1日.
则(2000-1949)÷4=12……3,再4+2×12-3=25,年份代码计算结果为25,加上10月份的代码1,再加上日的代码1,等于27.再除以七的余数为6,则这一天为星期六.
追问
.....敢问兄台也是山东交通学子?
My_Persistence
2016-06-14 · TA获得超过3467个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:431万
展开全部
我可以帮你解决这个问题。
更多追问追答
追问
恩人呐/55555,敢问如何解决
追答

/*

**程序描述:万年历算星期几,只要随便说出公元几几年几月几日就可以马上算出是星期几。

*/

#include <stdio.h>

//闰年计算

int leap_year(int year)

{

    if(year%400==0||(year%4==0 && year%100!=0))

        return 1;

    else

        return 0;

}


int what_is_weekday(int year, int month, int day)

{

int yearCode,monthCode,dayCode;

int a[12]={1,4,4,7,2,5,7,3,6,1,4,6};

int quotient;  //商

int remainder; //余数

int i,result,sum;

//年份代码计算

if(year == 2000)

yearCode=4;

else if(year > 2000)

{

quotient=(year-2000)/4;

remainder=(year-2000)%4;

yearCode=4-2*quotient+remainder+leap_year(year);

}

else

{

quotient=(2000-year)/4;

remainder=(2000-year)%4;

yearCode=4+2*quotient-remainder+leap_year(year);

}

//月份代码计算

for(i=0;i<12;i++)

{

if(month == i+1)

{

monthCode=a[i];

}

}

//日的代码计算

dayCode=day;

//计算出是星期几

sum=yearCode+monthCode+dayCode;

result=sum%7;

return result;

}

int main()

{

int year,month,day;

printf("输入年,月,日: ");

scanf("%d%d%d",&year,&month,&day);

printf("公元%d年%d月%d日是: 星期%d\n",year,month,day,what_is_weekday(year,month,day));

return 0;

}

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式