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" ]% ==  &&  $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 ]<> and  $everymonth [ $j ][ 0 ]< $i ){  //原来错在这里,对闰月没有修补
      
$mm = $i - 1 ;
  }
  else{
      
$mm = $i ;
  }

  if(
$i == $everymonth [ $j ][ 0 ]+ 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)