PHP编程:PHP实现阳历到农历转换的类实例
发布时间:2020-12-13 02:27:16 所属栏目:PHP教程 来源:网络整理
导读:《PHP实现阳历到农历转换的类实例》要点: 本文介绍了PHP实现阳历到农历转换的类实例,希望对您有用。如果有疑问,可以联系我们。 本篇章节讲解PHP实现阳历到农历转换的类.供大家参考研究.具体如下: PHP编程 代码如下: ?php //PHP阳历到农历转换的
《PHP实现阳历到农历转换的类实例》要点: 本篇章节讲解PHP实现阳历到农历转换的类.分享给大家供大家参考.具体如下:PHP编程
代码如下:
<?php
//PHP阳历到农历转换的一个类 class Calendar { //农历每月的天数 ??? var $everyCMonth=array( ??? 0=>array(8,29,30,7,1), ??? 1=>array(0,8,2), ??? 2=>array(0,9,3), ??? 3=>array(5,10,4), ??? 4=>array(0,1,5), ??? 5=>array(0,2,6), ??? 6=>array(4,3,7), ??? 7=>array(0,4,8), ??? 8=>array(0,5,9), ??? 9=>array(2,6,10), ??? 10=>array(0,11), ??? 11=>array(6,12), ??? 12=>array(0, ??? 13=>array(0, ??? 14=>array(5, ??? 15=>array(0, ??? 16=>array(0, ??? 17=>array(2, ??? 18=>array(0, ??? 19=>array(7, ??? 20=>array(0, ??? 21=>array(0, ??? 22=>array(5, ??? 23=>array(0, ??? 24=>array(0, ??? 25=>array(4, ??? 26=>array(0, ??? 27=>array(0, ??? 28=>array(2, ??? 29=>array(0, ??? 30=>array(6, ??? 31=>array(0, ??? 32=>array(0, ??? 33=>array(5, ??? 34=>array(0, ??? 35=>array(0, ??? 36=>array(3, ??? 37=>array(0, ??? 38=>array(7, ??? 39=>array(0, ??? 40=>array(0, ??? 41=>array(6, ??? 42=>array(0, ??? 43=>array(0, ??? 44=>array(4, ??? 45=>array(0, ??? 46=>array(0, ??? 47=>array(2, ??? 48=>array(0, ??? 49=>array(7, ??? 50=>array(0, ??? 51=>array(0, ??? 52=>array(5, ??? 53=>array(0, ??? 54=>array(0, ??? 55=>array(3, ??? 56=>array(0, ??? 57=>array(8, ??? 58=>array(0, ??? 59=>array(0, ??? 60=>array(6, ??? 61=>array(0, ??? 62=>array(0, ??? 63=>array(4, ??? 64=>array(0, ??? 65=>array(0, ??? 66=>array(3, ??? 67=>array(0, ??? 68=>array(7, ??? 69=>array(0, ??? 70=>array(0, ??? 71=>array(5, ??? 72=>array(0, ??? 73=>array(0, ??? 74=>array(4, ??? 75=>array(0, ??? 76=>array(8, ??? 77=>array(0, ??? 78=>array(0, ??? 79=>array(6, ??? 80=>array(0, ??? 81=>array(0, ??? 82=>array(4, ??? 83=>array(0, ??? 84=>array(10, ??? 85=>array(0, ??? 86=>array(0, ??? 87=>array(6, ??? 88=>array(0, ??? 89=>array(0, ??? 90=>array(5, ??? 91=>array(0, ??? 92=>array(0, ??? 93=>array(3, ??? 94=>array(0, ??? 95=>array(8, ??? 96=>array(0, ??? 97=>array(0, ??? 98=>array(5, ??? 99=>array(0, ??? 100=>array(0, ??? 101=>array(4, ??? 102=>array(0, ??? 103=>array(0, ??? 104=>array(2, ??? 105=>array(0, ??? 106=>array(7, ??? 107=>array(0, ??? 108=>array(0, ??? 109=>array(5, ??? 110=>array(0, ??? 111=>array(0, ??? 112=>array(4, ??? 113=>array(0, ??? 114=>array(9, ??? 115=>array(0, ??? 116=>array(0, ??? 117=>array(6, ??? 118=>array(0, ??? 119=>array(0, ??? 120=>array(4,1) ??? ); //农历天干 ??? var $mten=array("null","甲","乙","丙","丁","戊","己","庚","辛","壬","癸");??? //农历地支 ??? var $mtwelve=array("null","子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)", ?????????????????? "巳(蛇)","午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)");??? //农历月份 ??? var $mmonth=array("闰","正","二","三","四","五","六", ????????????????? "七","八","九","十","十一","十二","月"); ??? var $mday=array("null","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十", ??????????????? "十一","十三","十四","十五","十六","十七","十八","十九","二十", ??????????????? "廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十");//农历日 //赋给初值 //天干地支 ??? var $ten=0; ??? var $twelve=0; ??? function MyPub($cYear,$cMonth,$cDay) ??? { ??????? $total=11;//阳历总天数 至1900年12月21日?? ??????? $mtotal=0;//阴历总天数 ??????? for ($y=1901;$y<$cYear;$y++) ??????? { ??????????? $total+=365; ??????????? if ($y%4==0) $total ++; ??????? } ??????? //再加当年的几个月 ??????? switch ($cMonth){ ???????????????? 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 ($cYear%4==0 and $cMonth>2) ??????????? { ??????????????? $total++; ??????????? } ??????????? $total+=$cDay-1; ??????????? //用农历的天数累加来判断是否超过阳历的天数 ??????????? for($j=0;$j<=120;$j++) ??????????? { ??????????????? $i=1; ??????????????? for($i=1;$i<=13;$i++) ??????????????? { ??????????????????? $mtotal+=$this->everyCMonth[$j][$i]; ??????????????????? if ($mtotal>=$total) ??????????????????? { ??????????????????????? $flag=1; ??????????????????????? break; ??????????????????? } ??????????????? } ??????????????? if ($flag==1)break; ??????????? } ??????????????????? return array("m"=>$j,"d"=>$i,"t"=>$total,"n"=>$mtotal); ??? } ??? function Cal($Year,$Month,$Day) ??? { ??????? $Par=$this->MyPub($Year,$Day); ? ??????? $md=$this->everyCMonth[$Par["m"]][$Par["d"]]-($Par["n"]-$Par["t"]); ??????? $week=($Par["t"]+5)%7; ??????? if ($this->everyCMonth[$Par["m"]][0]<>0 and $this->everyCMonth[$Par["m"]][0]<$Par["d"]) ??????? { ??????????????? $mm=$Par["d"]-1; ??????? }else{ ??????????????? $mm=$Par["d"]; ??????? } ??????? if ($Par["d"]==$this->everyCMonth[$Par["d"]][0]+1 and $this->everyCMonth[$Par["d"]][0]<>0) ??????? { ??????????? $cMonth=$this->mmonth[0].$this->mmonth[$mm];//闰月 ??????? }else{ ??????????? $cMonth=$this->mmonth[$mm].$this->mmonth[13]; ??????? } ??????? return array("year"=>$this->mten[$this->everyCMonth[$Par["m"]][14]].$this->mtwelve[$this->everyCMonth[$Par["m"]][15]], ??????????????????? "month"=>$cMonth, ??????????????????? "day"=>$this->mday[$md], ??????????????????? "week"=>$week); ??? } } /////调用 $test=new Calendar; $Year=$test->Cal(2004,20); echo $Year["year"]."年".$Year["month"].$Year["day"]."周".$Year["week"]; ?> 希望本文所述对大家的php程序设计有所赞助.PHP编程 《PHP实现阳历到农历转换的类实例》是否对您有启发,欢迎查看更多与《PHP实现阳历到农历转换的类实例》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |