您的位置:首页技术文栏综合技术
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

万年阳历中星期的软件算法

[日期:2008-05-21 ] [来源:net 作者:佚名] [字体: (投递新闻)

说明]

本法具有占用 ROM 小 , 运算速快的特点,范围 2000 ßà 2099 共 100 年;

只要输入年月日便可直接得出相应的星期,一步到位!

算法]

1. 0 à 6 表示星期天到星期六 .

2. 平年有 365 天 , 闰年有 366 天 . 而一星期 7 天, 365 mod 7=1,365 mod 7=2, 那么, N 年与( N+1 )分别相差 +1 和 + ( 1+1 )天。

3. 已知 :2000.01.01 是星期六 .

4. 作一张数据表 : 要求这年 1 月 1 日是星期六且是非闰年 ( 平年 — 选用 2005 年正好 ) 给出每月的 1 日星期数 :

DB   0FFH, 06H, 02H, 02H, 05H, 00H, 03H, 05H, 01H, 04H, 06H, 02H, 04H; (first data is useless)

5 .比如求 Y1Y0 年 M 月 D 日的星期 .

6 .那么根据 M 可查得相对的 M 月 1 日的星期数,为 X .

7 .所以 M 月 D 日为 星期 (X+(D-1))MOD 7 .

8 由于从 2000 年 M 月 D 日到 Y1Y0 年 M 月 D 日所经历的闰二月数共为 : (Y1Y0-2000+3)/4+(Y1Y0-2000)+ ( Y1Y0 年是闰年且 M>2 ) .

所以整个公式为 : 这天是

星期 [(X+(D-1))+ (Y1Y0-2000+3)/4+(Y1Y0-2000)+Y1Y0 年是闰年且 M 月 >2] MOD 7

 smile

                                               Tuesday, March 12, 2002

 

阅读:
录入:面面

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
站长推荐