天天看點

生肖計算 php,PHP計算天幹地支和生肖屬性

function getGZ($year){

$zhi=array('子','醜','寅','卯','辰','巳','午','未','申','酉','戌','亥');

$gan=array('甲','乙','丙','丁','戊','己','庚','辛','壬','癸');

$animals=array('鼠','牛','虎','兔','龍','蛇','馬','羊','猴','雞','狗','豬');

if(is_numeric($year) && $year>=1900 && $year<2100 && strlen($year)==4){

$lastDigit=substr($year,-1);

//1900~2100年年幹=年份最後一位數-3,結果為負則+10,最後得到的數為幾則為第幾個值,下同.

$gI=($lastDigit-3 >0 ? $lastDigit-3 : $lastDigit+10-3)-1;

//1900~1999年年支=年份最後兩位數+1,2000~2099年年支=年份最後兩位數+5

//然後除以12取餘數,餘數為0時重置為12以免數組索引為負數.;

$last2Digits=substr($year,-2);

if($year>=1900 && $year<=1999){

$last2Digits+=1;

} else {

$last2Digits+=5;

}

$zI=($last2Digits>12 ? ($last2Digits%12==0 ? 12:$last2Digits%12) : $last2Digits%12)-1;

return $year.'年是'.$gan[$gI].$zhi[$zI].$animals[$zI].'年';

} else {

return $year.'不是1900-2099之間的4位整數';

}

}

echo getGZ('2099');//調用方法

?>

輸出:2099年是己未羊年