中易网

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

答案:2  悬赏:80  
解决时间 2021-01-13 16:24
C语言 输入某人的出生日期,计算并显示其出生的当天是星期几。(注:要计算出生日是星期几,首先要计算
最佳答案
理解这段代码的意思有一个前提: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日这一天,就应该是最后一个星期的最后一天,那么应该是周六。
其余情况可以类推了。
全部回答
参考公式:

蔡勒(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,星期日
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求撒野广播剧资源啊啊啊qwq
有没有和《保卫萝卜》1、2类似的萌萌塔防游戏
人生没有目标,感觉自己什么都做不了,浑浑噩
钻孔灌注桩采用C30水下混凝土是什么意思?
学习实践驾车自动档刹车控制不好有什么办法?
求资源这是个GIF
中国传统节日习俗有什么?
快递中,北京93投是什么意思??
KClO3中Cl的化合价是多少,怎么算的
行政管理学是否属于财经类专业
求“我为岗位做贡献”文章一篇
说一个人属于大智若愚型,表明这人怎样
牛年出生97年5月19日中午12点半命运入可.'
圆通速递(何氏营业部)地址在哪,我要去那里办
学刚玻璃总汇地址在什么地方,想过去办事
推荐资讯
车是客汽车美容装潢怎么去啊,我要去那办事
新疆真假蜂蜜
各位大神 这个锅我到底接不接
我的AE浏览预设打不开呀 但我安装了Adobe Bri
宗教四大特征
女孩叫刘锦什么好听
《爵迹2》宣传方为什么要致歉?
唱东京食尸鬼的mr.岑是男是女
怡心岛棋牌会所怎么去啊,我要去那办事
欠多个网贷没有不还会怎么样啊
请把描写雾淞的句子写不来
小时候玩的游戏,一个小人在房间里历险,小人
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?