打印

HotWC3(V1.02)网上在线工具升级支持多种星期算法

[复制链接]
2268|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 hotpower 于 2012-10-26 23:18 编辑

菜农为增加对各种星期算法及公式的验证,特意升级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网页运行贴图:

相关帖子

沙发
乡村男孩| | 2011-7-19 08:26 | 只看该作者
沙发

使用特权

评论回复
板凳
乡村男孩| | 2011-7-19 08:26 | 只看该作者
好好和大叔学习
大叔啥时候授课呢

使用特权

评论回复
地板
hotpower|  楼主 | 2011-7-19 09:40 | 只看该作者
准备结合rtc的例程讲讲星期公式的实际应用

使用特权

评论回复
5
乡村男孩| | 2011-7-19 11:01 | 只看该作者
期待。。。
先提前学习之

使用特权

评论回复
6
hotpower|  楼主 | 2011-7-19 11:05 | 只看该作者
实际还有GPS等星期算法的必须应用。

使用特权

评论回复
7
weshiluwei6| | 2011-7-19 12:43 | 只看该作者
期待大叔讲课啊

使用特权

评论回复
8
hotpower|  楼主 | 2011-7-19 23:24 | 只看该作者
先学习基础知识

使用特权

评论回复
9
hotpower|  楼主 | 2011-7-20 09:39 | 只看该作者

void rtc_t::SetWeek(uint32_t Year, uint32_t Month, uint32_t Day)
{
        uint32_t DayOfWeek;
//月表=(13*Month+8)/5
        static const char WeekTable[]="\x2\x5\x0\x3\x5\x1\x4\x6\x2\x0";
        if (WriteEnable())
        {
                if (Month < 2)
                {
//去年
                        if (Year > 0) Year --;//2000.3~2099.12
                        else Year = 9999;
//今年的1月2月是去年的13月14月
//                        Month += 12;
//今年的1月2月是去年的5月6月
                        Month += 4;       
                }
//世纪内星期算法
//            DayOfWeek = ((Year%100)+((Year%100)>>2)+(13*Month+8)/5+Day)%7;

//菜农星期表格=(百年%4*5+年+年/4+月表+日)%7
//月表=(13*Month+8)/5
//工程编译长度合计3484个字节
            DayOfWeek = (((Year/100)&3)*5+(Year%100)+((Year%100)>>2)+WeekTable[Month-3]+Day)%7;

//菜农星期公式=((百年&3)*5+年+(年>>2)+(13*月+8)/5+日)%7
//工程编译长度合计3492个字节
//            DayOfWeek = (((Year/100)&3)*5+(Year%100)+((Year%100)>>2)+(13*Month+8)/5+Day)%7;

//基姆拉尔森星期公式=(百年/4+百年*5+年+年/4+(13*月+8)/5+日)%7
//工程编译长度合计3508个字节
//            DayOfWeek = (Year/400+(Year/100)*5+(Year%100)+((Year%100)>>2)+(13*Month+8)/5+Day)%7;

//蔡勒完整星期公式=(203+百年/4-2*百年+年+年/4+(13*月+3)/5+日+1)%7
//工程编译长度合计3508个字节
//            DayOfWeek = (203+Year/400-(Year/100)*2+(Year%100)+((Year%100)>>2)+(13*Month+8)/5+Day)%7;

//蔡勒星期公式=(百年/4-2*百年+年+年/4+(13*月+3)/5+日+1)%7
//工程编译长度合计3500个字节
//            DayOfWeek = (Year/400-(Year/100)*2+(Year%100)+((Year%100)>>2)+(13*Month+8)/5+Day)%7;

#if LOOK_H == 0
                RTCs.DWR.Bits.DWR = DayOfWeek;
#else
                RTC.DWR().DWR = DayOfWeek;
#endif
                rtc_t::DayOfWeek = DayOfWeek;
        }
}

(标准算法)
菜农星期表格编译后,3484字节
菜农星期公式编译后,3492字节
基姆拉尔森星期公式编译后,3508字节
蔡勒星期公式编译后,也是3508字节

菜农星期表格:0
菜农星期公式:+8
基姆拉尔森星期公式:+24
蔡勒星期公式编译后,+24

使用特权

评论回复
10
51小刚| | 2011-7-20 18:26 | 只看该作者
顶菜农大叔!

使用特权

评论回复
11
hotpower|  楼主 | 2011-7-20 19:00 | 只看该作者

使用特权

评论回复
12
hotpower|  楼主 | 2011-7-21 01:24 | 只看该作者
HotWC3的一个暴力行为:
http://bbs.lcdhome.net/read-htm-tid-23328.html

6楼和7楼。
注意HotWC3的网址现在为:
http://www.hotpower.org/HotAjax/HotPower_HotAjax.html

使用特权

评论回复
13
hotpower|  楼主 | 2011-7-22 18:38 | 只看该作者
本帖最后由 hotpower 于 2011-7-23 00:01 编辑

今晚群课就是LOOK之RTC,其中肯定要涉及星期公式的。
该例程中有6种星期算法

使用特权

评论回复
14
老鱼探戈| | 2011-7-22 20:41 | 只看该作者
赞一个!

使用特权

评论回复
15
xd54622| | 2011-7-22 20:52 | 只看该作者
这个必须顶

使用特权

评论回复
16
hotpower|  楼主 | 2011-7-24 19:28 | 只看该作者
哈哈,没几个人喜欢HotWC3的~~~

使用特权

评论回复
17
hotpower|  楼主 | 2012-10-23 19:32 | 只看该作者
挖墓为2012.10.25菜农个人版《HotWC3密码体系》开版搜索

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:[url=http://www.21ic.com/tools/HotWC3_V1.23.html]

1460

主题

21619

帖子

506

粉丝