请教用php计算农历问题 自己写函数吧,老外的东西会给你中国人做这功能?就连那么牛的Java都没有呐~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 代码:<?php############################### ## ## 世纪万年历 ## ## ################################这是唯一的设置-请输入php文件的位置$file="http://127.0.0.1/s2m.php";############################################作者: 沈潋(S&S Lab) ##E-mail:[email protected] ##web: http://www.focus-2000.com ## ##版权声明: ##作者开放版权 ##允许无条件地使用本文件的全部或部分 ##可作任何修改或增补 ##如果您使用了本文件,请给作者写一封E-mail ##如有问题欢迎同作者联系 ##谢谢您的关注! #############################################农历每月的天数$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>S2M</title></head><body bgcolor="#CCFFFF" text="#008000"><?php#打印年月抬头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]]."/".$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 size="4" color="#FF0000"><b>星期日</b></font></td> <td width="14%" align="center" bgcolor="#CCCCCC"><font color="#000000" size="4"><b>星期一</b></font></td> <td width="14%" align="center" bgcolor="#CCCCCC"><font color="#000000" size="4"><b>星期二</b></font></td> <td width="14%" align="center" bgcolor="#CCCCCC"><font color="#000000" size="4"><b>星期三</b></font></td> <td width="14%" align="center" bgcolor="#CCCCCC"><font color="#000000" size="4"><b>星期四</b></font></td> <td width="14%" align="center" bgcolor="#CCCCCC"><font color="#000000" size="4"><b>星期五</b></font></td> <td width="14%" align="center" bgcolor="#CCCCCC"><font size="4" color="#008000"><b>星期六</b></font></td> </tr><?php$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\"><font size=\"4\"><b>$day </b> </font><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";elseecho "<p align=\"center\">";if ($ny<=2020)echo "<a href=\"".$file."?year=".$ny."&month=".$next."\">下一个月>></a></p>\n";?> <?phpecho "<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> 简直要晕~~~~~~~~楼上的确是英雄!用的话我到china上去抓代码 关于php往oracle里存取clob的问题 vista 下修改apache 配置文件的错误 一个参数问题,寻求帮忙(送高分) 如何显示磁盘d的总容量 导出数据的问题 php初学者提问,有关数组,谢谢 header()为什么在原来的服务器上起作用,换一台就不起作用了呢??? 请推荐几个好的PHP站点和一些书。谢谢 Error 404 Object not found! 使用sleep函数解决定时删除未支付订单探讨 如何判断一字符串是不是由数字、字母和下划线组成的? form中变量的传值问题?
<?php
##############################
# #
# #
# 世纪万年历 #
# #
# #
###############################这是唯一的设置-请输入php文件的位置$file="http://127.0.0.1/s2m.php";###########################################
#作者: 沈潋(S&S Lab) #
#E-mail:[email protected] #
#web: http://www.focus-2000.com #
# #
#版权声明: #
#作者开放版权 #
#允许无条件地使用本文件的全部或部分 #
#可作任何修改或增补 #
#如果您使用了本文件,请给作者写一封E-mail #
#如有问题欢迎同作者联系 #
#谢谢您的关注! #
############################################农历每月的天数
$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>S2M</title>
</head><body bgcolor="#CCFFFF" text="#008000"><?php
#打印年月抬头
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]]."/".$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 size="4" color="#FF0000"><b>星期日</b></font></td>
<td width="14%" align="center" bgcolor="#CCCCCC"><font color="#000000" size="4"><b>星期一</b></font></td>
<td width="14%" align="center" bgcolor="#CCCCCC"><font color="#000000" size="4"><b>星期二</b></font></td>
<td width="14%" align="center" bgcolor="#CCCCCC"><font color="#000000" size="4"><b>星期三</b></font></td>
<td width="14%" align="center" bgcolor="#CCCCCC"><font color="#000000" size="4"><b>星期四</b></font></td>
<td width="14%" align="center" bgcolor="#CCCCCC"><font color="#000000" size="4"><b>星期五</b></font></td>
<td width="14%" align="center" bgcolor="#CCCCCC"><font size="4" color="#008000"><b>星期六</b></font></td>
</tr>
<?php
$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\"><font size=\"4\"><b>$day </b> </font><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>
楼上的确是英雄!
用的话我到china上去抓代码