陈永鹏的csdn博客地址:http://blog.csdn.net/chenyoper
陈永鹏的博客园地址:http://www.cnblogs.com/Yoperchen
西子内容管理系统:http://www.xizicms.com
周末闲来无事,写了个生肖计算的类,比较简单,但是特别实用。
主要有以下的功能
根据生肖获取年龄,根据年龄获取生肖,根据年份获取生肖,获取年龄、生肖、年份的对应关系。
另外,本人开发的“西子内容管理系统”即将上线,模块解耦,可安装、可卸载,相当搔。
生肖年龄互换类
/**
* 生肖年龄互换
* @author Yoper
* @e-mail chen.yong.peng@foxmail.com
* @欢迎关注个人公众号 零零糖
* @Wechat Yoperman ,添加请发送验证"CSDN"
* @ www.linglingtang.com
*/
class zodiac{
/**
* 根据年份获取生肖
* @param int $year
* @return string
*/
function get_zodiac_by_year($year){
$num = ($year-1900)%12;//1900 是鼠
$zodiac='';
switch ($num){
case 0:$zodiac='鼠';break;
case 1:$zodiac='牛';break;
case 2:$zodiac='虎';break;
case 3:$zodiac='兔';break;
case 4:$zodiac='龙';break;
case 5:$zodiac='蛇';break;
case 6:$zodiac='马';break;
case 7:$zodiac='羊';break;
case 8:$zodiac='猴';break;
case 9:$zodiac='鸡';break;
case 10:$zodiac='狗';break;
case 11:$zodiac='猪';break;
}
return $zodiac;
}
/**
* 根据年龄获取生肖
* @param int $age
* @param number $is_real_age
* @return unknown
*/
function get_zodiac_by_age($age,$is_real_age=1){
if(!$is_real_age)$age-=1;//传虚岁则减一
$now_year=date('Y');
$year=$now_year-$age;
$zodiac=$this->get_zodiac_by_year($year);
return $zodiac;
}
/**
* 年份年龄生肖
* @return [['yearold'=>29,'year'=>'1990','zodiac'=>'马'],[]]
*/
function get_zodiac_list($total=100){
$now_year=date('Y');
for($i=0;$i<$total;$i++){
$info=[];
$year = $now_year-$i;
$info['yearold']=$i+1;
$info['year']=$year;
$info['zodiac']=$this->get_zodiac_by_year($year);
$list[]=$info;
}
return $list;
}
/**
*
* @return ['鼠'=>'1,2,3,4,5','牛'=>'2,5,5,5,']
*/
function get_zodiac_list2(){
$zodiac_list=$this->get_zodiac_list();
$list2=[];
foreach($zodiac_list as $info){
$list2[$info['zodiac']] && $list2[$info['zodiac']].=",".$info['yearold'];
!$list2[$info['zodiac']]&& $list2[$info['zodiac']]=$info['yearold'];
}
return $list2;
}
/**
* 根据生肖获取数字
* @param unknown $zodiac
* @return string 1,2,3,4,5
*/
function get_number_str_by_zodiac($zodiac){
$list = $this->get_zodiac_list();
foreach($list as $info){
if($zodiac==$info['zodiac']){
$number_arr[]=$info['yearold'];
}
}
$number_str=implode(',', $number_arr);
return $number_str;
}
}
年龄、生肖、年份之间的转换。
完。
码农转型中,欢迎关注个人微信公众号,要打赏就到微信公众号的打赏~
交流深夜的姿势,不要总是阅读毒鸡汤文~