本帖最后由 hotpower 于 2011-7-18 23:05 编辑
本文验证工具:http://www.hotpower.org/HotAjax/HotPower_HotAjax.html
首先列出“菜农与蔡勒和基姆拉尔森三个星期公式”:
蔡勒星期公式=(203+百年/4-2*百年+年+年/4+13*(月+1)/5+日-1)%7
或:
蔡勒星期公式=(203+百年/4-2*百年+年+年/4+(13*月+8)/5+日)%7
或:
蔡勒星期公式=(203+百年/4-2*百年+年+年/4+(13*月+3)/5+日+1)%7
基姆拉尔森星期公式=(百年/4+百年*5+年+年/4+(13*月+3)/5+日+1)%7
或:
基姆拉尔森星期公式=(百年/4+百年*5+年+年/4+(13*月+8)/5+日)%7
或:
基姆拉尔森星期公式=(百年/4+百年*5+年+年/4+13*(月+1)/5+日-1)%7
注意:(13*月+8)/5+日最简洁!!!
菜农星期公式=((百年%4)*5+年+年/4+(13*月+8)/5+日)%7
或:
菜农星期公式=((百年&3)*5+年+(年>>2)+(13*月+8)/5+日)%7
我们可以看到三个星期公式的组成:
1.百年(日期/100)
蔡勒星期公式有:203+百年/4-2*百年
基姆拉尔森星期公式有:百年/4+百年*5
菜农星期公式有:(百年%4)*5
2.年(日期%100)
三个公式都有:年+年/4
3.月日
三个公式都有:(13*月+8)/5+日
可以看出三个公式最大的不同点在于百年的算法构成大不一样。
蔡勒星期公式中的“-2*百年”最为独特,真不明白在干什么。
其次是基姆拉尔森星期公式中的“百年*5”,有5的倍数的身影。
而菜农星期公式中的“(百年%4)*5”构成了0,5,10,15,0,5,10,15,...序列
并且((百年%4)*5)%7又构成了我们需要的0,5,3,1,0,5,3,1,...序列
蔡勒星期公式需要0,5,3,1,0,5,3,1,...序列
基姆拉尔森星期公式有0,5,10,15,0,5,10,15,...序列的念头
而菜农星期公式两个序列都满足,即百年的计算核心实际就是0,5,10,15,0,5,10,15,...序列!!!
在数学中,(百年%4)*5=(百年*5)%20,即都能得到0,5,10,15,0,5,10,15,...序列
故即可衍生出《菜农第二星期公式》!!!
菜农第二星期公式=((百年*5)%20+年+年/4+(13*月+8)/5+日)%7
其中:其中: 百年=0~99,年=0~99,月=1~12,日=1~28/29/30/31 当月=1或2时,月=月+12或月=月+4,年=年-1
假若用:日期=百年*100+年,百年=日期/100
故有:
菜农第二星期公式=(((日期/100)*5)%20+日期%100+(日期%100)/4+(13*月+8)/5+日)%7
其中:其中: 日期=0~9999,月=1~12,日=1~28/29/30/31 当月=1或2时,月=月+12或月=月+4,日期=日期-1
大家可以随意采用:
菜农星期公式=((百年%4)*5+年+年/4+(13*月+8)/5+日)%7
或:
菜农星期公式=((百年&3)*5+年+年/4+(13*月+8)/5+日)%7
菜农第二星期公式=((百年*5)%20+年+年/4+(13*月+8)/5+日)%7
或:
菜农第二星期公式=(((日期/100)*5)%20+日期%100+(日期%100)/4+(13*月+8)/5+日)%7
雁塔菜农HotPower@126.com 2011.7.17 9:18 于西安雁塔菜地 |