其实原理很简单,也就是把所有的星座月份日期范围存储到一个数组中,然后根据日期判断属于哪个范围,这样就得到是哪个星座了。
下面的这个函数写的比较精炼,可以参考一下
function constellation($month,$day){
//检查参数有效性
if($month<1||$month>12||$day<1||$day>31) return false;
//星座名称以及开始日期
$constellations=array(
array("20"=>"宝瓶座"),
array("19"=>"双鱼座"),
array("21"=>"白羊座"),
array("20"=>"金牛座"),
array("21"=>"双子座"),
array("22"=>"巨蟹座"),
array("23"=>"狮子座"),
array("23"=>"处女座"),
array("23"=>"天秤座"),
array("24"=>"天蝎座"),
array("22"=>"射手座"),
array("22"=>"摩羯座")
);
list($constellation_start,$constellation_name)=each($constellations[(int)$month-1]);
if($day<$constellation_start){
list($constellation_start,$constellation_name)=each($constellations[($month-2<0)?$month=11:$month-=2]);
}
return $constellation_name;
}