农民历撰写.doc_第1页
农民历撰写.doc_第2页
农民历撰写.doc_第3页
农民历撰写.doc_第4页
农民历撰写.doc_第5页
已阅读5页,还剩12页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

农民历撰写(有天干地支的)各位好:小弟是PHP新手,一直想学习撰写程序,但是怎么学习都没有很好的效果.不知道各位都怎么学习PHP的?此外小弟想撰写一个农民历程序,可以包含天干地支,做为未来改写成八字排盘用,但是不知道该如何撰写起?小弟对这方面很弱.我想这是程序学不好的一个原因吧?请各位可以指导小弟一下! 1搂温子 如何学!就是从一堆小问题用程序解决,累积的经验就对啦.任何程序都一样.像你现在的需求就是个很好的题目,先从了解天干地支开始..tw/love1970619/article.php?pbgid=3131&entryid=18167将以上连结说的写成程序. 接下来再去解决农历转换的问题 2搂 jay 感谢您:目前只写出西元年转换成天干地支,但是之后的日期与天干地支该怎么著手?还有很头痛闰年的部分.小弟是想先写出程式在来排版,目前简略写出,请前辈看看这样对不对!请参阅:/PHP/ 3搂温子 接下来就是训练关键字找资料的时间了. 快去问狗吧= =a 温子笨笨的一值打民国年所以都是错的,所以你还缺少防呆机制 4搂 jay Sorry.小弟偷懒,没写清楚也没做防呆装置.想说等程式OK再来修改,小弟今天写好了,找出月份的干支部分,请各位帮小弟验证看看,发现比我想的还差很多,例如国历与农历的转换,以及闰年.等都还考虑进去.光这部分小弟就想很久哩.哈!/PHP/ 5搂 jay 刚刚忘了说了.我程式写完到此发现一下bug不知道怎么克服,假设User都不输入资料,直接送出,会出现:您输入的日期是:年转换成干支是:壬您的月份天干地支为:丁当然此部分可以用javascript强制输入,但是小弟不清楚的是没有值为什么会有天干出现?再来就是日的部分,小弟找的资料如下:推算日期干支:大家肯定看到各种命理书上有介绍如何用口诀推四柱八字,有什么“五虎遁年起月诀”、“作鼠遁日起时诀”云云,可是一说到如何起日法,就用“查万年历”一笔带过,既然日要查万年历,那介绍推月、时的口诀不是很多余吗?我用万年历查日却用口诀推月、时不是很傻吗?好了,废话不多说,介绍方法先。不过丑话说前头,这方法比较麻烦,要背的。首先你要背出每年阳历1月1日的干支,听到这大家可能要厥倒了,不要紧,可以少背一点阿,我就只背了70-85年的每年阳历第一天的干支,毕竟网上算命的人都在这个年龄段,当然,如果你记性好,可以多背点,其实多算多运用此方法自然能记得的。方法很简单:将欲求的西历日期减去1 月1日再加上其对应的干支表中的序号数,便得欲求的西历日期的干支序号。当干支序号大于60时则减60。比如求西历1973年的4月26日的干支,因为 1973年阳历1月1日的干支是丁酉,丁酉在干支表中的序号是34,将4月26日减1月1日加34得115+34149(注意在计算天数的时候是算头不算尾,算尾不算头),149大于60,所以149-60-6029,干支表中29对应的干支是壬辰!如果你背不出序号的对应干支,其实有个窍门,比如 29,天干10位一轮回,29的天干就是29-10-109,即壬;地支12位一轮回,29-245,所以是辰!与干支纪日法甲炎了第一日,乙丑为第二日,丙寅为第三日60日为一周。一周完了再由甲子日起,周而复始,循环下去。例如农历己巳年(1989年)正月初一是丁酉日,初二是戊戌日到三月初七正好是60天,因此三月初二又是丁酉日。.但小弟不知道如何转换成PHP写法,有前辈愿意指导一下吗? 6搂那颗烂葱 啥都没输却有结果No source , No truth程式没做处理,当然就依据没给的值做出特定的事印象中你现在问的东西几年前的报价是20万. XD程式要写得出来,先有逻辑画得出流程图,写的出算式,就能转成程式像149-60-6029,就149 % 60就好.(取余数)7搂那颗烂葱 西元年月日转农历年月日网路上应该都找得到范例,这个就不说明了电脑的基本时间是以西元为主像time()这函式,丢回来的数字是从1970/1/1 00:00开始算起的秒数 8搂 jay 感谢.小弟因为本身有涉猎八字命理这方面的知识,想说自己也在学习程式,何不加在一起,至于卖$.想都没想过!小弟的程式如下:您输入的日期是:年转换成干支是:?/处理月份,取该年西历年份除以5的余数减2后乘以2再减1$old_month=($year%5-2)*2-1;if ($old_month = 12) $old_month=$old_month-10;switch ($month) case 1: $month=寅; break; case 2: $month=卯; break; case 3: $month=辰; break; case 4: $month=巳; break; case 5: $month=午; break; case 6: $month=未; break; case 7: $month=申; break; case 8: $month=酉 ; break; case 9: $month=戌; break; case 10: $month=亥; break; case 11: $month=子; break; case 12: $month=丑; break; default: echo; /抓出月的天干switch ($old_month) case 1: echo .您的月份天干地支为:甲.$month; break; case 2: echo .您的月份天干地支为:乙.$month; break; case 3: echo .您的月份天干地支为:丙.$month; break; case 4: echo .您的月份天干地支为:丁.$month; break; case 5: echo .您的月份天干地支为:戊.$month; break; case 6: echo .您的月份天干地支为:己.$month; break; case 7: echo .您的月份天干地支为:庚.$month; break; case 8: echo .您的月份天干地支为:辛.$month; break; case 9: echo .您的月份天干地支为:壬.$month; break; case 10: echo .您的月份天干地支为:癸.$month; break; default: echo; /?default部分我都是echo空字串阿,所以才觉得怪?!9搂烈龙 下面这些给你研究一下吧。这是我之前从别人写好的asp转成php。(改的有点吐血就是了)这里面的资料应该你就可用了。直接使用CalConv()的话会依照目前的时间去显示你也可以指定时间显示。(不过是用秒数的喔,也就是time()等等)这样方便处理其它时间。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;# #取得日期 if ($timevar=0) $today=getdate(time(); else $today=getdate($timevar); /$today=getdate($timevar); if($todayyear2020) die(年份出错!); $cur_wday=$todaywday; for($y=1901;$y2) $total+; /如果?年是?年?要加一天 $total=$total+$todaymday-1; /加?月的天? $flag1=0; /判?跳出循?的?件 $j=0; while ($j=120) /用?的天?累加?判?是否超?的天? $i=1; while ($i=$total) $flag1=1; break; $i+; if ($flag1=1) break; $j+; if($everymonth$j00 and $everymonth$j0$i) $mm=$i-1; else $mm=$i; if($i=$everymonth$j0+1 and $everymonth$j00) $nlmon=$mmonth0.$mmonth$mm;#?月 else $nlmon=$mmonth$mm.$mmonth13; #?算所求月份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.$mten$everymonth$j14.$mtwelve$everymonth$j15.年.$nlmon.$nlday; $nowday=date(Y年m月d日 ).$weekday$cur_wday.$mten$everymonth$j14.$mtwelve$everymonth$j15.年.$nlmon.$nlday; /return $nowday; /return $everymonth$j15; /* $weekday$cur_wday = 星期 $mten$everymonth$j14 = 天干 $mtwelve$everymonth$j15 = 地支 */ return $nowday;?10搂 jay 您好:谢谢您的程式,想请教一下0=array(8,0,0,0,0,0,0,0,0,0,0,0,29,30,7,1), 类似这些的code是做什么用的?小弟刚刚试了一下,此程式是会推算出年的天干地支,其余日期就无法推算?以及.小弟不才是否是只能计算到120的农民历? 11搂烈龙 这其实是一个万年历的计算。里面有包含了一些转换的公式。包含闰月、闰年的计算。里面的资料可以算到2020年。也就是前面那一大串的阵列资料。(至于怎么出来的我就不知道,我只是从asp转过来用)我主要是给你看一下他的一些转换的公式。看看是不是对你有帮助。因为我对命理的东西不明白。所以也

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论