分享

万年星期计算方法

 清勤居士 2008-09-29

根据年月日计算出该日为星期几的方法:

一、修正数概念的引入:若X日为星期MY日为星期NN>M),则称d=NM为修正数。则可得,若知道X日为星期M,又知道XY日之间的d,则可计算出N,从而N的大小,在这里,修正数0d6,含有修正数的运算,最后结果一律取原结果被7除所得余数。

二、修正数基本原理:

a0a1之间的修正数为d1a1a2之间为d2an-1an之间为dn

则易得a0an之间的修正数d=d1+d2+……+dn

 

三、由某月某日是星期几推知该月其他日期为星期几

例如,已知199011为星期一,则易得2日的d13日的d2……由于d7为周期循环,所以8日为09日为1……,由此可推出每月31个日期的修正数

表一

日期

1

2

3

4

5

6

7

 

8

9

10

11

12

13

14

 

15

16

17

18

19

20

21

 

22

23

24

25

26

27

28

 

29

30

31

 

 

 

 

修正数d

0

1

2

3

4

5

6

 

则对于19901月任一日,星期N=d(日)+1

四、由某月某日是星期几推知该年其他月份同一日为星期几

例如已知199011为星期一,由上表可得131为星期三,可的21为星期四,则二月的修正数为4-1=3,用同样的方法可知其他月份的修正数

表二:每月修正数(不考虑闰年)

 

月份

1

2

3

4

5

6

7

8

9

10

11

12

修正数

0

3

3

6

1

4

6

2

5

0

3

5

 

由表一表二

这对于1990年任一日,可得星期M=d()+d(日)+1

对于闰年,由于其二月比平年多一日所以三月以后修正数有所改变,将在下一节进行介绍。

 

五、由某年某月某日为星期几推知该世纪其他年份同月同日为星期几

平年的365天,为52星期加一天,因此平年的第二年(假设也是平年)里的某一天,星期数总是比第一个平年的同一天往后推一天。则后一年的修正数为1,后两年修正数为2(不考虑闰年),由此类推。若考虑闰年,即该年后一年为闰年,由于2月多一日,则三月以后修正数全部加1,考虑到制表的方便,在这里,,该闰年的修正数加1,三至十二月修正数不变,一至二月修正数减1,可得如下两表

年份

00

01

02

03

 

04

05

 

06

07

 

08

09

10

11

 

 

12

13

14

15

 

16

 

17

18

19

 

20

21

22

 

23

 

24

25

26

27

 

 

28

29

30

31

 

32

33

 

34

35

 

36

37

38

39

 

 

40

41

42

43

 

44

 

45

46

47

 

48

49

50

 

51

 

52

53

54

55

 

 

56

57

58

59

 

60

61

 

62

63

 

64

65

66

67

 

 

68

69

70

71

 

72

 

73

74

75

 

76

77

78

 

79

 

80

81

82

83

 

 

84

85

86

87

 

88

89

 

90

91

 

92

93

94

95

 

 

96

97

98

99

 

 

修正数d

0

1

2

3

4

5

6

 

(括号中为闰年)

月份

1

2

3

4

5

6

7

8

9

10

11

12

修正数

06

32

3

6

1

4

6

2

5

0

3

5

 

 

 

由表一、三、四可得该世纪中任一日为星期M=d(年)+d(月)+d(日)+1

 

六、由某世纪某日推知其他世纪同年同月同日为星期几

例如,已知199011为星期一,求209011为星期几。

由于公元1582年天文学家利里奥对历法的改革方案,采用了40097闰法,即凡公元年号能被4整除为闰年,但公元年号为整百年时,须能被400整除者方为闰年,(如1600年、2000年)。其它为平年(如1700年、1900年)。对于公元年号为整百年的是闰年的世纪,它下一世纪相对于它的修正数为6,对于公元年号为整百年的是平年(如1700年、1900年)的世纪,它的下一世纪相对于它修正数为5,可得如下

 

世纪

1600

1700

1800

1900

2000

2100

2200

2300        

修正数d

5

4

2

0

5

4

2

0

 

 

于是,将上述几表合并,可得

 

 

 

 

 

 

 

 

世纪

1600

1700

1800

1900

2000

2100

2200

2300        

 

修正数d

5

4

2

0

5

4

2

0

 

年份

00

01

02

03

 

04

05

 

 

06

07

 

08

09

10

11

 

 

 

12

13

14

15

 

16

 

 

17

18

19

 

20

21

22

 

 

23

 

24

25

26

27

 

 

 

28

29

30

31

 

32

33

 

 

34

35

 

36

37

38

39

 

 

 

40

41

42

43

 

44

 

 

45

46

47

 

48

49

50

 

 

51

 

52

53

54

55

 

 

 

56

57

58

59

 

60

61

 

 

62

63

 

64

65

66

67

 

 

 

68

69

70

71

 

72

 

 

73

74

75

 

76

77

78

 

 

79

 

80

81

82

83

 

 

 

84

85

86

87

 

88

89

 

 

90

91

 

92

93

94

95

 

 

 

96

97

98

99

 

 

 

修正数d

0

1

2

3

4

5

6

月份

1

2

3

4

5

6

7

8

9

10

11

12

修正数

06

32

3

6

1

4

6

2

5

0

3

5

 

日期

1

2

3

4

5

6

7

 

 

8

9

10

11

12

13

14

 

 

15

16

17

18

19

20

21

 

 

22

23

24

25

26

27

28

 

 

29

30

31

 

 

 

 

 

修正数d

0

1

2

3

4

5

6

(括号中为闰年修正数)

 

可得任一日星期M=d(世纪)+d(年)+d(月)+d(日)+1

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多