C语言请教

intweeks(longyear,intmouth,intday)/*计算公元某年某月某日是星期几函数*/{longS;intXing_qi,C;switch(isle... int weeks(long year,int mouth,int day) /*计算公元某年某月某日是星期几函数*/
{
long S;
int Xing_qi,C;
switch(isleap(year))
{
case 0:
switch(mouth)
{
case 1: C=day;break;
case 2: C=31+day;break;
case 3: C=59+day;break;
case 4: C=90+day;break;
case 5: C=120+day;break;
case 6: C=151+day;break;
case 7: C=181+day;break;
case 8: C=212+day;break;
case 9: C=243+day;break;
case 10: C=273+day;break;
case 11: C=304+day;break;
case 12: C=334+day;break;
default : break;
} break;
case 1:
switch(mouth)
{
case 1: C=day;break;
case 2: C=31+day;break;
case 3: C=60+day;break;
case 4: C=91+day;break;
case 5: C=121+day;break;
case 6: C=152+day;break;
case 7: C=182+day;break;
case 8: C=213+day;break;
case 9: C=244+day;break;
case 10: C=274+day;break;
case 11: C=305+day;break;
case 12: C=335+day;break;
default : break;
} break;
}
S=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+C;
Xing_qi=S%7;
return Xing_qi;
}

请问这段C语言中的S=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+C; 是什么意思???
展开
 我来答
此账号已封存
2012-05-05 · TA获得超过810个赞
知道小有建树答主
回答量:459
采纳率:0%
帮助的人:447万
展开全部
貌似公元元年的元旦是星期天吧,平年一年有365天,除以7的余数是1,由此可知如果今年是平年,且今年的某月某日是星期一。那么第二年的同一天就是星期二。如果是闰年。除以7的余数则是2,同理如果闰年的某月某日是星期一,则第二年的某月某日是星期三。类推。
如果一年是364天,那么每年的同一日期对应的星期几都是固定的(364%7=0),但实际上平年多出一天,闰年多出2天,那么公元year年的第C天就多出了 year-1+闰年年数+C 这么多天,能被4整除但不能被100整除或者能被400整除的年份是闰年,C表示那天是那年中的第几天,所以得出以上式子,当然用S=(year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+C;最终得到的结果也是一样的,因为((year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+C)%7等于((year-1)+(year-1)/4-(year-1)/100+(year-1)/400+C )%7相当于化简了
匿名用户
2012-05-05
展开全部
C为当年的第几天,这个相信你懂的;
S=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400;是什么意思呢?

是这样的,平年为365天,而闰年为366天;但364刚刚可以被7整除,所以一般来说,一年与下一年在星期几上就差1天(这没考虑闰年的影响因素),所以便有了year-1;但因为闰年的存在,所以需要计算,在今年之前出现了多少个闰年;总和S也就是那么多年(平年+闰年)对星期几的影响因素。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一变班爱麻啊堡0J
高粉答主

2020-01-13 · 醉心答题,欢迎关注
知道答主
回答量:11.4万
采纳率:2%
帮助的人:5721万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
长上天妖1D
高粉答主

2019-11-15 · 醉心答题,欢迎关注
知道答主
回答量:15.3万
采纳率:5%
帮助的人:7605万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjk123zjk1234
2012-05-05 · TA获得超过103个赞
知道小有建树答主
回答量:295
采纳率:0%
帮助的人:127万
展开全部
闰年 处理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式