<?  
//世纪万年历  
#这是唯一的设置-请输入php文件的位置  
$file="http://192.168.1.168/php/rl/s2m.php";  
//#农历每月的天数  
$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","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十",  
            "十一","十二","十三","十四","十五","十六","十七","十八","十九","二十",  
            "廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十");  
##############################  
#赋给初值  
#天干地支  
$ten=0;  
$twelve=0;  
#星期  
$week=5;  
#农历日  
$md=0;  
#农历月  
$mm=0;  
#阳历总天数 至1900年12月21日  
$total=11;  
#阴历总天数  
$mtotal=0;  
##############################  
#获得当日日期  
$today=getdate();  
#如果没有输入,设为当日日期  
if ($year=="" or $month=="" or ($year<1901 or $year>2020)  
    or ($month<1 or $month>12)){  
     $year=$today[year];  
     $month=$today[mon];  
   }  
##############################  
#计算到所求日期阳历的总天数-自1900年12月21日始  
#先算年的和  
for ($y=1901;$y<$year;$y++){  
      $total+=365;  
      if ($y%4==0) $total ++;  
    }  
#再加当年的几个月  
switch ($month){  
         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 ($year%4==0 and $month>2){  
     $total++;  
    }  
#顺便算出当月1日星期几  
$week=($total+$week)%7;  
##############################  
#用农历的天数累加来判断是否超过阳历的天数  
$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++;  
    }   
##############################  
#计算所求月份1号的农历日期  
$md=$everymonth[$j][$i]-($mtotal-$total);  
#月头空开的天数  
$k=$week;  
#是否跨越一年  
switch ($month){  
         case 1:  
         case 3:  
         case 5:  
         case 7:  
         case 8:  
         case 10:  
         case 12:  
              $dd=31;  
              break;  
         case 4:  
         case 6:  
         case 9:  
         case 11:  
              $dd=30;  
              break;  
         case 2:  
              if ($year%4==0){  
                  $dd=29;  
                 }else{  
                  $dd=28;  
                 }  
              break;  
       }  
#是否跨越一年  
$ty=0;  
if ((($everymonth[$j][0]<>0 and $i==13) or ($everymonth[$j][0]==0 and $i==12))  
       and $mtotal-$total<$dd) $ty=1;  
?>  
<html>  
<head>  
<title>世纪万年历</title>  
<style type="text/css">  
<!--  
input { font-size:9pt;}  
A:link {text-decoration: underline; font-size:9pt;color:000059}  
A:visited {text-decoration: underline; font-size:9pt;color:000059}  
A:active {text-decoration: none; font-size:9pt}  
A:hover {text-decoration:underline;color:red}  
body,table {font-size: 9pt}  
tr,td{font-size:9pt}  
-->  
</style>  
</head>  
<body alink="#FF0000" link="#000099" vlink="#CC6600" topmargin="8" leftmargin="0" bgColor="#FFFFFF">  
<?  
    //打印年月抬头  
    echo "<p align=\"center\"><font size=\"6\"><b>".$year."年".$month."月</b></font></p>\n";  
    if($ty==0)  
    {  
        echo "<p align=\"center\"><b><font size=\"4\">".$mten[$everymonth[$j][14]].$mtwelve[$everymonth[$j][15]]."年</font></b></p>";  
    }  
    else  
    {  
        echo "<p align=\"center\"><b><font size=\"4\">".$mten[$everymonth[$j][14]].$mtwelve[$everymonth[$j][15]]."https://www.jb51.net/".$mten[$everymonth[$j+1][14]].$mtwelve[$everymonth[$j+1][15]]."年</font></b></p>";  
    }  
?>  
<div align="center">  
  <center>  
  <table border="1" width="85%">  
    <tr>  
      <td align="center" bgcolor="#CCCCCC"><font color="#FF0000"><b>星期日</b></font></td>  
      <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期一</b></td>  
      <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期二</b></td>  
      <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期三</b></td>  
      <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期四</b></td>  
      <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期五</b></td>  
      <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期六</b></td>  
    </tr>  
<?  
$day=1;  
$line=0;  
while ($day<=$dd){  
   echo "<tr>\n";  
   for ($s=0;$s<=6;$s++){  
         if ($k<>0 or $day>$dd){  
              echo "<td width=\"14%\" align=\"center\"> </td>\n";  
              $k--;  
         }else{  
    //设置字符颜色  
               switch ($s){  
                        case 1:  
                        case 2:  
                        case 3:  
                        case 4:  
                        case 5:  
                             $color="#000000";  
                             break;  
                        case 0:  
                             $color="#FF0000";  
                             break;  
                        case 6:  
                             $color="#008000";  
                             break;  
                      }  
#生成中文农历  
               if ($md==1){#1日打印月份  
                    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) $chi=$mmonth[0].$mmonth[$mm];#闰月  
                    else $chi=$mmonth[$mm].$mmonth[13];  
               }else{  
                    $chi=$mday[$md];  
               }  
               echo "<td width=\"14%\" align=\"center\"><font color=\"$color\"><b>$day </b> <b><font size=\"2\">$chi</font></b></font></td>\n";  
               $day++;  
               $md++;  
               if ($md>$everymonth[$j][$i]){  
                    $md=1;  
                    $i++;  
                  }  
               if (($i>12 and $everymonth[$j][0]==0) or ($i>13 and $everymonth[$j][0]<>0)){  
                     $i=1;  
                     $j++;  
                  }  
           }  
       }  
   echo "</tr>\n";  
   $line++;  
}  
?>  
  </table>  
  </center>  
</div>  
<?php  
#补足空行  
for ($l=1;$l<=(6-$line);$l++){  
      echo "<table border=\"0\" width=\"100%\">\n";  
      echo "<tr>\n";  
      echo "<td width=\"100%\"><font color=\"#CCFFFF\">a</font></td>\n";  
      echo "</tr>\n";  
      echo "</table>\n";  
    }  
#打印上一月,下一月  
$ly=$ny=$year;  
$last=$month-1;  
if ($last==0){  
     $last=12;  
     $ly--;  
   }  
$next=$month+1;  
if ($next==13){  
     $next=1;  
     $ny++;  
   }  
if ($ly>=1901)  
echo "<p align=\"center\"><a href=\"".$file."?year=".$ly."&month=".$last."\"><<上一个月</a>   \n";  
else  
echo "<p align=\"center\">";  
if ($ny<=2020)  
echo "<a href=\"".$file."?year=".$ny."&month=".$next."\">下一个月>></a></p>\n";  
?>  
 <?php  
echo "<form method=\"POST\" action=\"".$file."\">\n";  
?>  
  <p align="center"><font color="#000000">年份:</font><select size="1" name="year">  
  <option>2020</option>  
  <option>2019</option>  
  <option>2018</option>  
  <option>2017</option>  
  <option>2016</option>  
  <option>2015</option>  
  <option>2014</option>  
  <option>2013</option>  
  <option>2012</option>  
  <option>2011</option>  
  <option>2010</option>  
  <option>2009</option>  
  <option>2008</option>  
  <option>2007</option>  
  <option>2006</option>  
  <option>2005</option>  
  <option>2004</option>  
  <option>2003</option>  
  <option>2002</option>  
  <option>2001</option>  
  <option selected>2000</option>  
  <option>1999</option>  
  <option>1998</option>  
  <option>1997</option>  
  <option>1996</option>  
  <option>1995</option>  
  <option>1994</option>  
  <option>1993</option>  
  <option>1992</option>  
  <option>1991</option>  
  <option>1990</option>  
  <option>1989</option>  
  <option>1988</option>  
  <option>1987</option>  
  <option>1986</option>  
  <option>1985</option>  
  <option>1984</option>  
  <option>1983</option>  
  <option>1982</option>  
  <option>1981</option>  
  <option>1980</option>  
  <option>1979</option>  
  <option>1978</option>  
  <option>1977</option>  
  <option>1976</option>  
  <option>1975</option>  
  <option>1974</option>  
  <option>1973</option>  
  <option>1972</option>  
  <option>1971</option>  
  <option>1970</option>  
  <option>1969</option>  
  <option>1968</option>  
  <option>1967</option>  
  <option>1966</option>  
  <option>1965</option>  
  <option>1964</option>  
  <option>1963</option>  
  <option>1962</option>  
  <option>1961</option>  
  <option>1960</option>  
  <option>1959</option>  
  <option>1958</option>  
  <option>1957</option>  
  <option>1956</option>  
  <option>1955</option>  
  <option>1954</option>  
  <option>1953</option>  
  <option>1952</option>  
  <option>1951</option>  
  <option>1950</option>  
  <option>1949</option>  
  <option>1948</option>  
  <option>1947</option>  
  <option>1946</option>  
  <option>1945</option>  
  <option>1944</option>  
  <option>1943</option>  
  <option>1942</option>  
  <option>1941</option>  
  <option>1940</option>  
  <option>1939</option>  
  <option>1938</option>  
  <option>1937</option>  
  <option>1936</option>  
  <option>1935</option>  
  <option>1934</option>  
  <option>1933</option>  
  <option>1932</option>  
  <option>1931</option>  
  <option>1930</option>  
  <option>1929</option>  
  <option>1928</option>  
  <option>1927</option>  
  <option>1926</option>  
  <option>1925</option>  
  <option>1924</option>  
  <option>1923</option>  
  <option>1922</option>  
  <option>1921</option>  
  <option>1920</option>  
  <option>1919</option>  
  <option>1918</option>  
  <option>1917</option>  
  <option>1916</option>  
  <option>1915</option>  
  <option>1914</option>  
  <option>1913</option>  
  <option>1912</option>  
  <option>1911</option>  
  <option>1910</option>  
  <option>1909</option>  
  <option>1908</option>  
  <option>1907</option>  
  <option>1906</option>  
  <option>1905</option>  
  <option>1904</option>  
  <option>1903</option>  
  <option>1902</option>  
  <option>1901</option>  
     
  </select><font color="#000000">年</font><font color="#000000">      
  月份:<select size="1" name="month">  
  <option selected>1</option>  
  <option>2</option>  
  <option>3</option>  
  <option>4</option>  
  <option>5</option>  
  <option>6</option>  
  <option>7</option>  
  <option>8</option>  
  <option>9</option>  
  <option>10</option>  
  <option>11</option>  
  <option>12</option>  
     
  </select>月     </font><input type="submit" value="查询" name="B1"></p>  
</form>  
</body>  
</html>
您可能感兴趣的文章:
