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年是己未羊年