有没有<<星期速算法>>?

来源:百度知道 编辑:UC知道 时间:2024/05/03 00:51:11
有没有<<星期速算公式>>,能迅速算出任何一年的任何一天是星期几?

新编万年历星期速算法
推导过程:
1。平年365天(52周+1天),闰年366天(52周+2天)。平年2月28天,闰年2月29天。
由于公元1月1日设为星期六,故3月1日为星期三。 ——注意这个“三”
为使算法达到最简,故本算法以“星期”为计算单位。且选3月1日为基月。
2。每400年整一闰,或每4年且不为百年的一闰。
百年%4=0闰或(年%4=0并且年<>0)闰。
3。每 4年(3个平年+1个闰年)共208周+5天 ——注意这个“5天”
每百年共100*(208周+5天)-1天=5217周+5天 ——注意这个“5天”(整百年暂设为平年)
每400年共4*(5217周+5天)+1天(整400年闰)=20871周+0天——注意这个“0天”和“1天”(4个整百年只有一个闰年)
即400年一轮回!(原来万年历400年前是一家)
所以,万年历实际上是骗人的,应该叫“四百年历”才是。万只是多的意思罢了。
4.万年某日星期算法
公式:某日星期几=(百年%4*5天+年+年/4+月星期表+日+2天)%7
通同星期偏差表
闰年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
天数 31 29 31 30 31 30 31 31 30 31 30 31
星期 3 6 0 3 5 1 3 6 2 4 0 2
平年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
天数 31 28 31 30 31 30 31 31 30 31 30 31
星期 4 0 0 3 5 1 3 6 2 4 0 2
所以,代入公式,=(百年%4*5天+年+年/4+月星期表+日+2天)%7 (百年%4=0)(年即最后一位)
1800年12月1日:(0*5+0+0/4+1+2)%7=3%7=星期三

这个……
上面的计算年数的好像有点麻烦。我个人的方法跟上面差不多,不过我是先选一年(别选闰年),背下那一年的十二月份特殊数字(即每月第一日是星期X的话,X-1)。