|
說明] 本法具有占用 ROM 小 , 運(yùn)算速快的特點(diǎn),范圍 2000 ßà 2099 共 100 年; 只要輸入年月日便可直接得出相應(yīng)的星期,一步到位! 算法] 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. 作一張數(shù)據(jù)表 : 要求這年 1 月 1 日是星期六且是非閏年 ( 平年 — 選用 2005 年正好 ) 給出每月的 1 日星期數(shù) : DB 0FFH, 06H, 02H, 02H, 05H, 00H, 03H, 05H, 01H, 04H, 06H, 02H, 04H; (first data is useless) 5 .比如求 Y1Y0 年 M 月 D 日的星期 . 6 .那么根據(jù) M 可查得相對(duì)的 M 月 1 日的星期數(shù),為 X . 7 .所以 M 月 D 日為 星期 (X+(D-1))MOD 7 . 8 由于從 2000 年 M 月 D 日到 Y1Y0 年 M 月 D 日所經(jīng)歷的閏二月數(shù)共為 : (Y1Y0-2000+3)/4+(Y1Y0-2000)+ ( Y1Y0 年是閏年且 M>2 ) . 所以整個(gè)公式為 : 這天是 星期 [(X+(D-1))+ (Y1Y0-2000+3)/4+(Y1Y0-2000)+Y1Y0 年是閏年且 M 月 >2] MOD 7 smile Tuesday, March 12, 2002 |