C语言计算某年星期六的日期,日期计算(C语言)

满意答案

00e27ab806e4881f8254fe7ae8741834.png

代萱2216361

2013.09.23

00e27ab806e4881f8254fe7ae8741834.png

采纳率:47%    等级:11

已帮助:4299人

怎样巧算星期数

在日常生活和工作中,人们经常需要知道某一确定的公历日期为星期几?笔者经过研究,推算出一种计算方法,可以简单地口算出近几年中任何一天为星期几。经过简单计算还能确定任何公历日期的星期数。例如:2006年11月11日是星期六,就是(11+3-1)被7整除的余数6。其中,11是所需推算的日数;3是按月份确定的月份被加数,一年中12个月的月份被加数分别为:0、3、3、6、1、4、6、2、5、0、3、5 这是一组固定不变的数字,必须熟记下来,可以永久使用。如果所推算的时间在1月份,这个被加数就是0;如果所推算的时间在2月份,这个被加数就是3;如果所推算的时间在4月份,这个被加数就是6;……以此类推。2是按年份确定的年初被减数,也就是每年第一个星期日的公历日数,其变化规律通常是下一年的年初被减数逐年递减1天。当这个被减数减至0时,下一年从6开始递减,使这个被减数在0—6之间循环。例如:2005年的年初被减数为2;2006年的年初被减数为1;2007年的年初被减数为0;2008年的年初被减数为6,年初被减数一经确定,便能很快口算出这一年中的任何一天为星期几?例如2005年12月10日的计算结果为:(12+5-2)÷7=2余1,那么这一天就是星期一;2006年年初被减数为1,6月29日的计算结果为:(29+4-1)÷7=4余4,那么这一天就是星期四。

以上计算方法中,共有三个变量,即日期数、按月份确定的被加数和按年份确定的年初被减数。其中日期数是一个随意数字;按月份确定的被加数是一组固定数字,因而均可视为已知数。只有按年份确定的年初被减数是一个未知数。虽然在近几年中可以按照逐年递减1天的方法确定,但如果需要知道长时间中某一确定日期的星期数,这个年初被减数就需要进行一下简单的计算。因为在正常年份,一年365天恰好是365天÷7=52余1即52个星期零1天,把这余下的一天推到下一年,就形成了下一年的年初被减数,形成年初被减数的另一个原因是由于闰年所增加的日数,因为公历闰年是很有规则的,即能被4整除且不能被100整除;或者能被400整除的年份为闰年,闰年年份为366天。根据这些条件,我们可以推算出公元纪年中任何一个年份之前所有闰年日数的累加数,我们把每年52个星期余下的1天和由于闰年所增加的日数累加起来,合称为积数,用这个积数便可以计算出这一年的年初被减数,计算方法是:

① 计算积数,计算公式是

积数=(年份-1)+INT[(年份-1)÷4]—INT[(年份-1)÷100]

上式中INT是一个取整函数,即其后边括号内的计算结果只取其整

数部分。

② 用这个积数减去7的若干倍数,直至减到出现负数为止,这个负数

的绝对值(小于7)就是这个年份的年初被减数。

有了这个年初被减数,我们就可以计算出公元纪年中任何一天的星期

数。例如:1974年3月21日的星期数为:

①积数=1973+INT(1973÷4)+ INT(1973÷400)—INT((年份-1)÷100)=2451

②年初被减数=|2451—7×351|=6

那么这一天为:(21+3-6) ÷7=2余4即星期四。

注意:因为公元闰年所增加的一天都是固定地安排在二月份,所以闰年二月份为29天,常年为28天。这样,在计算闰年年份某一确定的星期日数时,就要以二月份为界限,即1月份和2月份的年初被减数比上一年少1天,3月以后的年初被减数比上一年少2天。

00分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值