菜农为增加对各种星期算法及公式的验证,特意升级HotWC3。
点击直接网上运行:http://www.hotpage.net.cn/HotAjax/HotPower_HotAjax.html
菜农有关星期网文:
菜农星期公式揭秘及蔡勒公式推想
菜农与蔡勒和基姆拉尔森三个星期公式之揭秘与推想
菜农与蔡勒和基姆拉尔森三个星期公式的继续繁衍
HotWC3有关算法程序片段:-
- function getweek(century, year, month, day)
- {
- var week, dateval, table;
- if (month <= 2)//1,2月变为去年的13,14月
- {
- year --;
- if (year < 0)
- {
- year = 99;
- century --;
- if (century < 0)
- {
- century = 99;
- }
- }
- month |= 4;//1,2月查5,6月表
- // month += 12;//去年的13,14月
- }
- switch(weeksele.selectedIndex)
- {
- case 0:
- /*
- 菜农星期算法
- 星期=(百年%4*5+年+年/4+(13*月+8)/5+日)%7
- */
- week = ((century & 3) * 5 + year + (year >> 2) + Math.floor((13 * month + 8) / 5) + day) % 7;
- break;
- case 1:
- /*
- 蔡勒星期算法
- 星期=百年/4+203-2*百年+年+年/4+(13*月+8)/5+日)%7
- */
- week = (Math.floor(century / 4) + 203 - 2 * century + year + (year >> 2) + Math.floor((13 * month + 8) / 5) + day) % 7;
- break;
- case 2:
- /*
- 基姆星期算法
- 星期=(百年/4+百年*5+年+年/4+(13*月+8)/5+日)%7
- */
- week = (Math.floor(century / 4) + century * 5 + year + (year >> 2) + Math.floor((13 * month + 8) / 5) + day) % 7;
- break;
- case 3:
- /*
- 菜农第二星期算法
- 星期=((百年*5)%20+年+年/4+(13*月+8)/5+日)%7
- */
- week = ((century * 5) % 20 + year + (year >> 2) + Math.floor((13 * month + 8) / 5) + day) % 7;
- break;
- case 4:
- /*
- 菜农第二星期算法
- 星期=(((日期/100)*5)%20+日期%100+(日期%100)4+(13*月+8)/5+日)%7
- */
- dateval = century * 100 + year;
- week = ((Math.floor(dateval / 100) * 5) % 20 + year + (year >> 2) + Math.floor((13 * month + 8) / 5) + day) % 7;
- break;
- case 5:
- /*
- 星期算法月表
- 星期=(百年%4*5+年+年/4+星期月表+日)%7
- */
- table = "2503514620";//3月为基月,3~12月,1,2月查5,6月表
- week = ((century & 3) * 5 + year + (year >> 2) + parseInt(table.substr(month-3, 1), 10) + day) % 7;
- break;
- }
- return week;
- }
HotWC3网页运行贴图:

|