C语言 输入某人的出生日期,计算并显示其出生的当天是星期几。(注:要计算出生日是星期几,首先要计算

C语言输入某人的出生日期,计算并显示其出生的当天是星期几。(注:要计算出生日是星期几,首先要计算出出生前一年的12月31日是星期几,其计算公式如下((year—1)*36... C语言

输入某人的出生日期,计算并显示其出生的当天是星期几。(注:要计算出生日是星期几,首先要计算出出生前一年的12月31日是星期几,其计算公式如下((year—1)*365+[(year-1)/4]-[(year-1)/100]+[(year-1)/400])%7,如果是闰年出生的且出生月份大于2月,则总天数要加1。)

关键是没有看明白那个式子是什么意思,求指教
展开
 我来答
sunnyfulin
2013-03-21 · TA获得超过465个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:197万
展开全部
理解这段代码的意思有一个前提:year是从公元元年开始计算的,而公元元年的第一天是星期日。
所以上述这个式子的意思就是:
year-1这么多年一共有多少天呢? 假设每年都是平年,那么一共有: (year-1)*365天
然后加上year-1年中闰年的个数就行了(多一个闰年就多加一天)
那么闰年的计算方法是:
能被4整除: +(year-1)/4
且不能被100整除: -(year-1)/100
或者能被400整除的也是闰年: +(year-1)/400
最后得到了year-1年一共是多少天,然后对7取模,如果余数是0,就是星期六(一周的最后一天),余数是1就是星期日(一周的第一天)

再详细说下:余数是0的情况就是说:year-1这么多年的天数刚好能够分配给整数个星期,即刚好能被7整除。所以作为12月31日这一天,就应该是最后一个星期的最后一天,那么应该是周六。
其余情况可以类推了。
百度网友fd7b018
2013-03-21 · 超过20用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:41.2万
展开全部
参考公式:

蔡勒(Zeller)公式:是一个计算星期的公式。
随便给一个日期,就能用这个公式推算出是星期几。蔡勒公式如下:
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1

公式中的符号含义如下:
w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
c:世纪(前两位数)
y:年(后两位数)
m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算),y-1,m+12
d:日
[ ]代表取整,即只要整数部分。
例如:2012年01月22日,星期几?
=2011年13月22日
W=11+int(11/4)+int(20/4)-2*20+int(26*(12+1+1)/10)+22-1
=11+2+5-40+36+22-1

声明:这是别人写的。不是我写的。
=18-40+58-1=35
35mod7=0,星期日
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式