轉換 php PHP陰曆陽曆轉換

2021-10-14 22:42:15 字數 4072 閱讀 7695

功能:

公曆-農曆轉換、轉換成中文日期格式、計算農曆相隔天數、根據陰曆年獲取生肖、獲取陰曆月份的天數、獲取農曆每年的天數、獲取閏月、計算陰曆日期與正月初一相隔的天數、計算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 八...