功能:
公曆-農曆轉換、轉換成中文日期格式、計算農曆相隔天數、根據陰曆年獲取生肖、獲取陰曆月份的天數、獲取農曆每年的天數、獲取閏月、計算陰曆日期與正月初一相隔的天數、計算2個公曆(陽曆)日期之間的天數、根據距離正月初一的天數計算陰曆日期、獲取天干地支紀年等,php日期操作類:
lunar.class.php**如下:
<?php class lunar return $this->getlunarbybetween($year,$this->getdaysbetweensolar($year,$month,$date,$yeardata[1],$yeardata[2])); } function convertsolarmonthtolunar($year,$month) $month_days_ary = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); $dd = $month_days_ary[$month]; if($this->isleapyear($year) && $month == 2) $dd++; $lunar_ary = array(); for ($i = 1; $i < $dd; $i++) return $lunar_ary; } /** * 判斷是否是閏年 * @param year */ function isleapyear($year) /** * 獲取干支紀年 * @param year */ function getlunaryearname($year)].$earth[$year%12]; } /** * 根據陰曆年獲取生肖 * @param year 陰曆年 */ function getyearzodiac($year) /** * 將陰曆轉換為陽曆 * @param year 陰曆-年 * @param month 陰曆-月,閏月處理:例如如果當年閏五月,那麼第二個五月就傳六月,相當於陰曆有13個月,只是有的時候第13個月的天數為0 * @param date 陰曆-日 */ function convertlunartosolar($year,$month,$date) /** * 獲取陽曆月份的天數 * @param year 陽曆-年 * @param month 陽曆-月 */ function getsolarmonthdays($year,$month) /** * 獲取陰曆月份的天數 * @param year 陰曆-年 * @param month 陰曆-月,從一月開始 */ function getlunarmonthdays($year,$month) /** * 獲取陰曆每月的天數的陣列 * @param year */ function getlunarmonths($year) for($k=0,$klen=16-count($bitarray);$k array_unshift($bitarray, '0'); } $bitarray = array_slice($bitarray,0,($leapmonth==0?12:13)); for($i=0; $i $bitarray[$i] = $bitarray[$i] + 29; } return $bitarray; } /** * 獲取農曆每年的天數 * @param year 農曆年份 */ function getlunaryeardays($year) function getlunaryearmonths($year) array_push($res, $temp); } return $res; } /** * 獲取閏月 * @param year 陰曆年份 */ function getleapmonth($year) /** * 計算陰曆日期與正月初一相隔的天數 * @param year * @param month * @param date */ function getdaysbetweenlunar($year,$month,$date) $res+=$date-1; return $res; } /** * 計算2個陽曆日期之間的天數 * @param year 陽曆年 * @param cmonth * @param cdate * @param dmonth 陰曆正月對應的陽曆月份 * @param ddate 陰曆初一對應的陽曆天數 */ function getdaysbetweensolar($year,$cmonth,$cdate,$dmonth,$ddate) /** * 根據距離正月初一的天數計算陰曆日期 * @param year 陽曆年 * @param between 天數 */ function getlunarbybetween($year,$between)elseelse if($between $t=$i+1; $e=$between-(empty($yearmonth[$i-1])?0:$yearmonth[$i-1])+1; break; } } $m = ($leapmonth!=0&&$t==$leapmonth+1)?('閏'.$this->getcapitalnum($t- 1,true)):$this->getcapitalnum(($leapmonth!=0&&$leapmonth+1-1):$t), $my_year = $this->toyear($year); array_push($lunararray,$my_year,$m,$this->getcapitalnum($e,false)); } array_push($lunararray,$this->getlunaryearname($year));// 天干地支 array_push($lunararray,$t,$e); array_push($lunararray,$this->getyearzodiac($year));// 12生肖 array_push($lunararray,$leapmonth);// 閏幾月 return $lunararray; } //轉換成中文年份 function toyear($year) /** * 獲取數字的陰曆叫法 * @param num 數字 * @param ismonth 是否是月份的數字 */ function getcapitalnum($num,$ismonth)elseelse if($num>10&&$num<20)else if($num==20)else if($num>20&&$num<30)else if($num==30) } return $res; }}?>
請將上面的**儲存為:lunar.class.php,下面的例子將會呼叫這個檔案,告訴你使用方法。
<?php require_once("lunar.class.php");//先包含這個檔案$lunar = new lunar();//生成物件$date = $lunar->convertsolartolunar(2014,2,12); //公曆轉農曆$date = $lunar->getyearzodiac(2014,2,12); //根據陰曆年獲取生肖$date = $lunar->isleapyear(2014,2,12); //判斷閏年//其它功能也是這種呼叫方法print_r($date);//如果是農曆轉公曆,**如下:$date = $lunar->convertlunartosolar(2014,2,12); //農曆轉公曆print_r($date);?>
C 陽曆轉陰曆
需求 需要根據當前日期,獲取陰曆日期。原文傳送門 如下圖所示 宣告農曆日月,如下所示 農曆日月 private static string months private static string days1 private static string days 返回農曆月,如下所示 返回農曆月 月...
陰陽曆轉換
陽曆與陰曆我國通常使用的紀年方法。陽曆又叫公曆,陰曆又叫農曆。外事用陽曆,以與國際接軌,內事用陰曆,以合國人習慣。不過現在農曆大只使用在一些節日和祭祀活動中,而公曆的應用卻越來越廣泛。由於地球繞太陽轉一周是365.2422,如果按公轉一圈為一年,那麼無 歷還是農曆都無法非常精確的表示一年。所以農曆平...
python實現農曆和陽曆日期轉換
需安裝sxtwl包,命令如下 pip install sxtwl 農曆 lunar calendar 陽曆 solar calendar 轉換 如下 基於python3 import sxtwl 日曆中文索引 ymc u 十一 u 十二 u 正 u 二 u 三 u 四 u 五 u 六 u 七 u 八...