2011-03-02 16:19

[PHP] 取得生日對應的星座名稱

在 Google 上找了一下能用 function,花了十分鐘決定自己寫了,說實在的在 social 的網站上這算是基本需求,而以前寫的也不知道丟哪去了,這次好好記錄下來免得以後又要再寫一份。

  1. function getStarSignsName($month, $day) { 
  2.    $list=array( 
  3.        array('name'=>"摩羯座",'min'=>'12-22','max'=>'01-19'),   
  4.        array('name'=>"水瓶座",'min'=>'01-20','max'=>'02-18'), 
  5.        array('name'=>"雙魚座",'min'=>'02-19','max'=>'03-20'), 
  6.        array('name'=>"牡羊座",'min'=>'03-21','max'=>'04-19'), 
  7.        array('name'=>"金牛座",'min'=>'04-20','max'=>'05-20'), 
  8.        array('name'=>"雙子座",'min'=>'05-21','max'=>'06-21'), 
  9.        array('name'=>"巨蟹座",'min'=>'06-22','max'=>'07-22'), 
  10.        array('name'=>"獅子座",'min'=>'07-23','max'=>'08-22'), 
  11.        array('name'=>"處女座",'min'=>'08-23','max'=>'09-22'), 
  12.        array('name'=>"天秤座",'min'=>'09-23','max'=>'10-23'), 
  13.        array('name'=>"天蠍座",'min'=>'10-24','max'=>'11-22'), 
  14.        array('name'=>"射手座",'min'=>'11-23','max'=>'12-21'), 
  15.    );  
  16.  
  17.    $time=strtotime("1970-$month-$day"); 
  18.    foreach ($list as $row){ 
  19.        $min=strtotime("1970-".$row['min']); 
  20.        $max=strtotime("1970-".$row['max']); 
  21.        if($min<=$time && $time<=$max){ 
  22.            return $row['name']; 
  23.        } 
  24.    } 
  25.    /*other to 摩羯座*/ 
  26.    return $list[0]['name']; 
  27. } 


測試程式:
  1. $test=array( 
  2.    array('n'=>"水瓶座",'m'=>'01','d'=>'20'), 
  3.    array('n'=>"水瓶座",'m'=>'02','d'=>'08'), 
  4.    array('n'=>"水瓶座",'m'=>'02','d'=>'18'), 
  5.  
  6.    array('n'=>"雙魚座",'m'=>'02','d'=>'19'), 
  7.    array('n'=>"雙魚座",'m'=>'03','d'=>'10'), 
  8.    array('n'=>"雙魚座",'m'=>'03','d'=>'20'), 
  9.  
  10.    array('n'=>"牡羊座",'m'=>'03','d'=>'21'), 
  11.    array('n'=>"牡羊座",'m'=>'04','d'=>'09'), 
  12.    array('n'=>"牡羊座",'m'=>'04','d'=>'19'), 
  13.  
  14.    array('n'=>"金牛座",'m'=>'04','d'=>'20'), 
  15.    array('n'=>"金牛座",'m'=>'05','d'=>'10'), 
  16.    array('n'=>"金牛座",'m'=>'05','d'=>'20'), 
  17.  
  18.    array('n'=>"雙子座",'m'=>'05','d'=>'21'), 
  19.    array('n'=>"雙子座",'m'=>'06','d'=>'1'), 
  20.    array('n'=>"雙子座",'m'=>'06','d'=>'21'), 
  21.  
  22.    array('n'=>"巨蟹座",'m'=>'06','d'=>'22'), 
  23.    array('n'=>"巨蟹座",'m'=>'07','d'=>'02'), 
  24.    array('n'=>"巨蟹座",'m'=>'07','d'=>'22'), 
  25.  
  26.    array('n'=>"獅子座",'m'=>'07','d'=>'23'), 
  27.    array('n'=>"獅子座",'m'=>'08','d'=>'02'), 
  28.    array('n'=>"獅子座",'m'=>'08','d'=>'22'), 
  29.  
  30.    array('n'=>"處女座",'m'=>'08','d'=>'23'), 
  31.    array('n'=>"處女座",'m'=>'09','d'=>'02'), 
  32.    array('n'=>"處女座",'m'=>'09','d'=>'22'), 
  33.  
  34.    array('n'=>"天秤座",'m'=>'09','d'=>'23'), 
  35.    array('n'=>"天秤座",'m'=>'10','d'=>'03'), 
  36.    array('n'=>"天秤座",'m'=>'10','d'=>'23'), 
  37.  
  38.    array('n'=>"天蠍座",'m'=>'10','d'=>'24'), 
  39.    array('n'=>"天蠍座",'m'=>'11','d'=>'02'), 
  40.    array('n'=>"天蠍座",'m'=>'11','d'=>'22'), 
  41.  
  42.    array('n'=>"射手座",'m'=>'11','d'=>'23'), 
  43.    array('n'=>"射手座",'m'=>'12','d'=>'02'), 
  44.    array('n'=>"射手座",'m'=>'12','d'=>'21'), 
  45.  
  46.    array('n'=>"摩羯座",'m'=>'12','d'=>'22'), 
  47.    array('n'=>"摩羯座",'m'=>'01','d'=>'09'), 
  48.    array('n'=>"摩羯座",'m'=>'01','d'=>'19'), 
  49. ); 
  50.  
  51. foreach ($test as $v){ 
  52.    if(getStarSignsName($v['m'],$v['d'])!==$v['n']){ 
  53.        echo $v['n'],"error<br/>"; 
  54.    }else{ 
  55.        echo $v['n'],"OK<br/>"; 
  56.    } 
  57. } 

0 回應: