不查日历怎么知道任何一天是星期几(2)# Astronomy - 天文
g*e
1 楼
发信人: qLmhBVzWrESk (qLmhBVzWrESk), 信区: Astronomy
标 题: 不查日历怎么知道任何一天是星期几(2)
发信站: BBS 水木清华站 (Sun May 2 01:09:07 2004), 站内
不查日历怎么知道任何一天是星期几(2)
文/葛民勤
上面的公式(1)虽然很准确,但是计算出来的数字太大了,使用起来很不方便
。仔
细想想,其实这个间隔天数W的用数仅仅是为了得到它除以7之后的余数。这启发我
们是
不是可以简化这个W值,只要找一个和它余数相同的较小的数来代替,照样可以计
算出
来准确的星期数。
显然,W这么大的原因是因为公式中的第一项(Y-1)*365太大了。其实,
(Y-1)*365 = (Y-1) * (364+1)
= (Y-1) * (7*52+1)
= 52 * (Y-1) * 7 + (Y-1),
这个结果的第一项是一个7的倍数,除以7余数为0,因此(Y-1)*365除以7的余数其
实就
等于(Y-1)除以7的余数。因此,完全可以用(Y-1)代替(Y-1)*365,这样我们就得到
了那
标 题: 不查日历怎么知道任何一天是星期几(2)
发信站: BBS 水木清华站 (Sun May 2 01:09:07 2004), 站内
不查日历怎么知道任何一天是星期几(2)
文/葛民勤
上面的公式(1)虽然很准确,但是计算出来的数字太大了,使用起来很不方便
。仔
细想想,其实这个间隔天数W的用数仅仅是为了得到它除以7之后的余数。这启发我
们是
不是可以简化这个W值,只要找一个和它余数相同的较小的数来代替,照样可以计
算出
来准确的星期数。
显然,W这么大的原因是因为公式中的第一项(Y-1)*365太大了。其实,
(Y-1)*365 = (Y-1) * (364+1)
= (Y-1) * (7*52+1)
= 52 * (Y-1) * 7 + (Y-1),
这个结果的第一项是一个7的倍数,除以7余数为0,因此(Y-1)*365除以7的余数其
实就
等于(Y-1)除以7的余数。因此,完全可以用(Y-1)代替(Y-1)*365,这样我们就得到
了那