友情提示:380元/半年,儿童学编程,就上码丁实验室。
计算星期几由于涉及到闰年的问题,有一定的复杂性,虽然有现成的公式,但一般是适合计算机运算。一般都是背诵一个表,通过查找来定位星期几,为了排除世纪闰年的因素,只考虑2000-2099年的运算,实际应用中这个比较常见。
首先给出平年闰年表
平年表622503514624
闰年表512503514624
- 对于给定的20XX年,只考虑后两位XX,比如计算2033年4月23号星期几,则列式子为33 4 23
- 先对年进行计算,年除以4得到的商不包含余数,该结果再加上年的和除以7得到一个余数,即33/4=8,8+33=41,41除以7得余数6
- 如果上一步有余数说明是平年,否则是闰年(在2000-2099年时这样判断是OK的),对于给定的月份4,在表中查找4个数字,由于2033年是平年,故从平年表中找到第4个数字5,将得到的数字与上一步数字相加除以7得到余数4
- 将日子23除以7得到余数为2,加上一步的4,得到最终结果为6,所以2033年4月23号星期6
上面的平年表和闰年表其实只有前两个数字不一样,为了判断方便所以记下来较好,当然也可以只记平年表,闰年表在计算1月或2月时自己减1也可。
其实该方法的主要步骤就是先对年计算得到一个数字,月份是查表得到的数字,日子是直接加,所有步骤的和分别对7求余数或者所有步骤相加的和再对7求余数都可。
上面步骤可以推理到其它世纪的运算,对算法自己扩展下即可。