php农历日历

<?
  
# ##########################################
   # 作者: 沈潋(S&S Lab)                      #
   # E-mail:[email protected]              #
   # web: http://www.focus-2000.com           #
   #                                          #
   # 版权声明:                                #
   # 作者开放版权                             #
   # 允许无条件地使用本文件的全部或部分       #
   # 可作任何修改或增补                       #
   # 如果您使用了本文件,请给作者写一封E-mail #
   # 如有问题欢迎同作者联系                   #
   # 谢谢您的关注!                            #
   # ##########################################

  
/*
   *修改:小许
   *mail: [email protected]
   *web : http://www.xfocus.org
   *
   *说实在的,我对古历可以说一窍不通,下面这个数组还是不理解 可是作者的信箱好像不通
   *基本上是依样画葫芦,所以出现错误,见笑见笑,呵呵
   
*/

  
# 农历每月的天数
   $everymonth = array (
                    
0 => array ( 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 29 , 30 , 7 , 1 ) ,
                    
1 => array ( 0 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 30 , 29 , 0 , 8 , 2 ) ,
                    
2 => array ( 0 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 30 , 0 , 9 , 3 ) ,
                    
3 => array ( 5 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 30 , 10 , 4 ) ,
                    
4 => array ( 0 , 30 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 0 , 1 , 5 ) ,
                    
5 => array ( 0 , 30 , 30 , 29 , 30 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 0 , 2 , 6 ) ,
                    
6 => array ( 4 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 3 , 7 ) ,
                    
7 => array ( 0 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 0 , 4 , 8 ) ,
                    
8 => array ( 0 , 30 , 29 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 0 , 5 , 9 ) ,
                    
9 => array ( 2 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 30 , 29 , 30 , 6 , 10 ) ,
                    
10 => array ( 0 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 30 , 29 , 0 , 7 , 11 ) ,
                    
11 => array ( 6 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 30 , 30 , 8 , 12 ) ,
                    
12 => array ( 0 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 30 , 0 , 9 , 1 ) ,
                    
13 => array ( 0 , 30 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 0 , 10 , 2 ) ,
                    
14 => array ( 5 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 1 , 3 ) ,
                    
15 => array ( 0 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 0 , 2 , 4 ) ,
                    
16 => array ( 0 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 0 , 3 , 5 ) ,
                    
17 => array ( 2 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 4 , 6 ) ,
                    
18 => array ( 0 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 0 , 5 , 7 ) ,
                    
19 => array ( 7 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 30 , 30 , 30 , 6 , 8 ) ,
                    
20 => array ( 0 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 30 , 30 , 0 , 7 , 9 ) ,
                    
21 => array ( 0 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 0 , 8 , 10 ) ,
                    
22 => array ( 5 , 30 , 29 , 30 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 9 , 11 ) ,
                    
23 => array ( 0 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 0 , 10 , 12 ) ,
                    
24 => array ( 0 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 0 , 1 , 1 ) ,
                    
25 => array ( 4 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 2 , 2 ) ,
                    
26 => array ( 0 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 0 , 3 , 3 ) ,
                    
27 => array ( 0 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 30 , 0 , 4 , 4 ) ,
                    
28 => array ( 2 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 30 , 30 , 5 , 5 ) ,
                    
29 => array ( 0 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 30 , 0 , 6 , 6 ) ,
                    
30 => array ( 6 , 29 , 30 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 29 , 7 , 7 ) ,
                    
31 => array ( 0 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 0 , 8 , 8 ) ,
                    
32 => array ( 0 , 30 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 0 , 9 , 9 ) ,
                    
33 => array ( 5 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 10 , 10 ) ,
                    
34 => array ( 0 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 0 , 1 , 11 ) ,
                    
35 => array ( 0 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 0 , 2 , 12 ) ,
                    
36 => array ( 3 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 30 , 30 , 30 , 29 , 3 , 1 ) ,
                    
37 => array ( 0 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 30 , 29 , 0 , 4 , 2 ) ,
                    
38 => array ( 7 , 30 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 5 , 3 ) ,
                    
39 => array ( 0 , 30 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 0 , 6 , 4 ) ,
                    
40 => array ( 0 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 0 , 7 , 5 ) ,
                    
41 => array ( 6 , 30 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 8 , 6 ) ,
                    
42 => array ( 0 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 0 , 9 , 7 ) ,
                    
43 => array ( 0 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 0 , 10 , 8 ) ,
                    
44 => array ( 4 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 1 , 9 ) ,
                    
45 => array ( 0 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 30 , 29 , 30 , 0 , 2 , 10 ) ,
                    
46 => array ( 0 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 0 , 3 , 11 ) ,
                    
47 => array ( 2 , 30 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 4 , 12 ) ,
                    
48 => array ( 0 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 0 , 5 , 1 ) ,
                    
49 => array ( 7 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 6 , 2 ) ,
                    
50 => array ( 0 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 0 , 7 , 3 ) ,
                    
51 => array ( 0 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 0 , 8 , 4 ) ,
                    
52 => array ( 5 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 9 , 5 ) ,
                    
53 => array ( 0 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 0 , 10 , 6 ) ,
                    
54 => array ( 0 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 0 , 1 , 7 ) ,
                    
55 => array ( 3 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 30 , 2 , 8 ) ,
                    
56 => array ( 0 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 0 , 3 , 9 ) ,
                    
57 => array ( 8 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 4 , 10 ) ,
                    
58 => array ( 0 , 30 , 30 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 0 , 5 , 11 ) ,
                    
59 => array ( 0 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 0 , 6 , 12 ) ,
                    
60 => array ( 6 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 7 , 1 ) ,
                    
61 => array ( 0 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 0 , 8 , 2 ) ,
                    
62 => array ( 0 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 0 , 9 , 3 ) ,
                    
63 => array ( 4 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 30 , 29 , 10 , 4 ) ,
                    
64 => array ( 0 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 30 , 0 , 1 , 5 ) ,
                    
65 => array ( 0 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 0 , 2 , 6 ) ,
                    
66 => array ( 3 , 30 , 30 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 3 , 7 ) ,
                    
67 => array ( 0 , 30 , 30 , 29 , 30 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 0 , 4 , 8 ) ,
                    
68 => array ( 7 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 5 , 9 ) ,
                    
69 => array ( 0 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 0 , 6 , 10 ) ,
                    
70 => array ( 0 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 30 , 0 , 7 , 11 ) ,
                    
71 => array ( 5 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 30 , 29 , 30 , 8 , 12 ) ,
                    
72 => array ( 0 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 0 , 9 , 1 ) ,
                    
73 => array ( 0 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 30 , 0 , 10 , 2 ) ,
                    
74 => array ( 4 , 30 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 30 , 1 , 3 ) ,
                    
75 => array ( 0 , 30 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 0 , 2 , 4 ) ,
                    
76 => array ( 8 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 3 , 5 ) ,
                    
77 => array ( 0 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 0 , 4 , 6 ) ,
                    
78 => array ( 0 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 0 , 5 , 7 ) ,
                    
79 => array ( 6 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 6 , 8 ) ,
                    
80 => array ( 0 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 0 , 7 , 9 ) ,
                    
81 => array ( 0 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 30 , 30 , 0 , 8 , 10 ) ,
                    
82 => array ( 4 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 30 , 9 , 11 ) ,
                    
83 => array ( 0 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 0 , 10 , 12 ) ,
                    
84 => array ( 10 , 30 , 29 , 30 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 1 , 1 ) ,
                    
85 => array ( 0 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 0 , 2 , 2 ) ,
                    
86 => array ( 0 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 0 , 3 , 3 ) ,
                    
87 => array ( 6 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 29 , 4 , 4 ) ,
                    
88 => array ( 0 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 0 , 5 , 5 ) ,
                    
89 => array ( 0 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 30 , 30 , 30 , 0 , 6 , 6 ) ,
                    
90 => array ( 5 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 30 , 30 , 7 , 7 ) ,
                    
91 => array ( 0 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 30 , 0 , 8 , 8 ) ,
                    
92 => array ( 0 , 29 , 30 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 0 , 9 , 9 ) ,
                    
93 => array ( 3 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 10 , 10 ) ,
                    
94 => array ( 0 , 30 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 0 , 1 , 11 ) ,
                    
95 => array ( 8 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 29 , 30 , 29 , 30 , 2 , 12 ) ,
                    
96 => array ( 0 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 29 , 0 , 3 , 1 ) ,
                    
97 => array ( 0 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 0 , 4 , 2 ) ,
                    
98 => array ( 5 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 29 , 30 , 30 , 29 , 30 , 5 , 3 ) ,
                    
99 => array ( 0 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 30 , 29 , 0 , 6 , 4 ) ,
                    
100 => array ( 0 , 30 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 29 , 0 , 7 , 5 ) ,
                    
101 => array ( 4 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 8 , 6 ) ,
                    
102 => array ( 0 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 0 , 9 , 7 ) ,
                    
103 => array ( 0 , 30 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 0 , 10 , 8 ) ,
                    
104 => array ( 2 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 1 , 9 ) ,
                    
105 => array ( 0 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 0 , 2 , 10 ) ,
                    
106 => array ( 7 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 3 , 11 ) ,
                    
107 => array ( 0 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 30 , 29 , 30 , 0 , 4 , 12 ) ,
                    
108 => array ( 0 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 0 , 5 , 1 ) ,
                    
109 => array ( 5 , 30 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 6 , 2 ) ,
                    
110 => array ( 0 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 0 , 7 , 3 ) ,
                    
111 => array ( 0 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 0 , 8 , 4 ) ,
                    
112 => array ( 4 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 9 , 5 ) ,
                    
113 => array ( 0 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 0 , 10 , 6 ) ,
                    
114 => array ( 9 , 29 , 30 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 29 , 30 , 1 , 7 ) ,
                    
115 => array ( 0 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 30 , 29 , 30 , 29 , 0 , 2 , 8 ) ,
                    
116 => array ( 0 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 30 , 29 , 30 , 30 , 0 , 3 , 9 ) ,
                    
117 => array ( 6 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 30 , 4 , 10 ) ,
                    
118 => array ( 0 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 30 , 0 , 5 , 11 ) ,
                    
119 => array ( 0 , 30 , 29 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 29 , 30 , 30 , 0 , 6 , 12 ) ,
                    
120 => array ( 4 , 29 , 30 , 30 , 30 , 29 , 30 , 29 , 29 , 30 , 29 , 30 , 29 , 30 , 7 , 1 )
                   );
# #############################
   # 农历天干
   $mten = array ( " null " , " " , " " , " " , " " , " " , " " , " " , " " , " " , " " );
  
# 农历地支
   $mtwelve = array ( " null " , " 子(鼠) " , " 丑(牛) " , " 寅(虎) " , " 卯(兔) " , " 辰(龙) " ,
                 
" 巳(蛇) " , " 午(马) " , " 未(羊) " , " 申(猴) " , " 酉(鸡) " , " 戌(狗) " , " 亥(猪) " );
  
# 农历月份
   $mmonth = array ( " " , " " , " " , " " , " " , " " , " " ,
                
" " , " " , " " , " " , " 十一 " , " 十二 " , " " );
  
# 农历日
   $mday = array ( " null " , " 初一 " , " 初二 " , " 初三 " , " 初四 " , " 初五 " , " 初六 " , " 初七 " , " 初八 " , " 初九 " , " 初十 " ,
              
" 十一 " , " 十二 " , " 十三 " , " 十四 " , " 十五 " , " 十六 " , " 十七 " , " 十八 " , " 十九 " , " 二十 " ,
              
" 廿一 " , " 廿二 " , " 廿三 " , " 廿四 " , " 廿五 " , " 廿六 " , " 廿七 " , " 廿八 " , " 廿九 " , " 三十 " );
# #############################
   # 星期
   $weekday   =   array ( " 星期日 " , " 星期一 " , " 星期二 " , " 星期三 " , " 星期四 " , " 星期五 " , " 星期六 " );

  
# 阳历总天数 至1900年12月21日
   $total = 11 ;
  
# 阴历总天数
   $mtotal = 0 ;
# #############################
   # 获得当日日期
   $today = getdate ();
  
if ( $today [ " year " ] < 1901   ||   $today [ " year " ] > 2020 die ( " 年份出错! " );

  
$cur_wday = $today [ " wday " ];

  
for ( $y = 1901 ; $y < $today [ " year " ]; $y ++ ) {  // 计算到所求日期阳历的总天数-自1900年12月21日始,先算年的和
        $total += 365 ;
       
if  ( $y % 4 == 0 $total ++ ;
  }

  
switch ( $today [ " mon " ]) {  // 再加当年的几个月
          case   12 :
              
$total += 30 ;
         
case   11 :
              
$total += 31 ;
         
case   10 :
              
$total += 30 ;
         
case   9 :
              
$total += 31 ;
         
case   8 :
              
$total += 31 ;
         
case   7 :
              
$total += 30 ;
         
case   6 :
              
$total += 31 ;
         
case   5 :
              
$total += 30 ;
         
case   4 :
              
$total += 31 ;
         
case   3 :
              
$total += 28 ;
         
case   2 :
              
$total += 31 ;
  }

  
if ( $today [ " year " ] % 4   ==   0   &&   $today [ " mon " ] > 2 $total ++ // 如果当年是闰年还要加一天

  
$total = $total + $today [ " mday " ] - 1 // 加当月的天数

  
$flag1 = 0 ;   // 判断跳出循环的条件
   $j = 0 ;
  
while  ( $j <= 120 ){   // 用农历的天数累加来判断是否超过阳历的天数
       $i = 1 ;
      
while  ( $i <= 13 ){
            
$mtotal += $everymonth [ $j ][ $i ];
            
if  ( $mtotal >= $total ){
                 
$flag1 = 1 ;
                 
break ;
            }
            
$i ++ ;
      }
      
if  ( $flag1 == 1 break ;
      
$j ++ ;
  }

  
if ( $everymonth [ $j ][ 0 ] <> 0  and  $everymonth [ $j ][ 0 ] < $i ){  // 原来错在这里,对闰月没有修补
       $mm = $i - 1 ;
  }
  
else {
      
$mm = $i ;
  }

  
if ( $i == $everymonth [ $j ][ 0 ] + 1  and  $everymonth [ $j ][ 0 ] <> 0 ) {
      
$nlmon = $mmonth [ 0 ] . $mmonth [ $mm ]; # 闰月
  }
  
else  {
      
$nlmon = $mmonth [ $mm ] . $mmonth [ 13 ];
  }

  
# 计算所求月份1号的农历日期
   $md = $everymonth [ $j ][ $i ] - ( $mtotal - $total );
  
if ( $md   >   $everymonth [ $j ][ $i ])
      
$md -= $everymonth [ $j ][ $i ];
  
$nlday = $mday [ $md ];

  
$nowday = date ( " Y年n月j日  " ) . $weekday [ $cur_wday ] . " <br> " . $mten [ $everymonth [ $j ][ 14 ]] . $mtwelve [ $everymonth [ $j ][ 15 ]] . " " . $nlmon . $nlday ;
  
echo   " <font color=#3333ff>$nowday</font> " ;
?>  

你可能感兴趣的:(PHP)