php计算十二星座的函数代码,php计算十二星座、十二生肖、天干地支的函数

一.公元后的:

天干:甲4 乙5 丙6 丁7 戊8 己9 庚0 辛1 壬2 癸3

如1894年末尾一个数是4就甲年,依此类推

地支:子4 丑5 寅6 卯7 辰8 巳9 午10 未11 申0 酉1 戌2 亥3

换算:1894除以12,余数是几,就在地支中找几.

二.公元前的:

天干:甲7 乙6 丙5 丁4 戊3 己2 庚1 辛0 壬9 癸8

如公元前7年就是甲年依此类推

地支:子-9 丑-8 寅-7 卯-6 辰-5 巳-4 午-3 未-2 申-1 酉0 戌-11 亥-10

换算:如公元前221年,-221除以12,余数是几,就在地支中找几

一、天干地支算法

方法1:

$TGDZ = array (

array ('甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸' ),

array ('子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥' )

);

$Year = 2014;

$Year_JiSuan = $Year - 1900 + 36;

$TianGanDiZhi = $TGDZ[0][$Year_JiSuan % 10] . $TGDZ[1][$Year_JiSuan % 12];

echo $Year."年为农历[".$TianGanDiZhi."]年";

方法2:

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

array ( '申', '酉', '戌', '亥', '子', '丑', '寅', '卯', '辰', '巳', '午', '未') );

for ($Year = 1900; $Year <= 2099; $Year++) {

$TianGanDiZhi = $TGDZ[0][$Year % 10] . $TGDZ[1][$Year % 12];

echo $Year . "年为农历[" . $TianGanDiZhi . "]年
";

}

二、计算生肖:

方法1:

if($_POST['year']){

$y = $_POST['year'];

$sxdict = array('猴', '鸡', '狗', '猪','鼠', '牛', '虎', '兔', '龙', '蛇', '马', '羊');

$result['sx'] = $sxdict[$y%12];

var_dump($result['sx']);

}

方法2:

if($_POST['year']){

$y = $_POST['year'];

$sxdict = array('鼠', '牛', '虎', '兔', '龙', '蛇', '马', '羊', '猴', '鸡', '狗', '猪');

$result['sx'] = $sxdict[(($y-4)%12)];

var_dump($result['sx']);

}

方法3:

/**

* 计算.生肖

*

* @param int $year 年份

* @return str

*/

function get_animal($year){

$animals = array(

'鼠', '牛', '虎', '兔', '龙', '蛇',

'马', '羊', '猴', '鸡', '狗', '猪'

);

$key = ($year - 1900) % 12;

return $animals[$key];

}

echo get_animal(1990); // 马

echo get_animal(2010); // 虎

三、计算星座:

方法1:

/*

* 计算星座的函数 string get_zodiac_sign(string month, string day)

* 输入:月份,日期

* 输出:星座名称或者错误信息

*/

function get_zodiac_sign($month, $day)

{

// 检查参数有效性

if ($month < 1 || $month > 12 || $day < 1 || $day > 31)

return (false);

// 星座名称以及开始日期

$signs = 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($sign_start, $sign_name) = each($signs[(int)$month-1]);

if ($day < $sign_start)

list($sign_start, $sign_name) = each($signs[($month -2 < 0) ? $month = 11: $month -= 2]);

return $sign_name;

}//函数结束

?>

方法2:

/**

* 计算.星座

*

* @param int $month 月份

* @param int $day 日期

* @return str

*/

function get_constellation($month, $day){

$signs = 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'=>'摩羯座')

);

$key = (int)$month - 1;

list($startSign, $signName) = each($signs[$key]);

if( $day < $startSign ){

$key = $month - 2 < 0 ? $month = 11 : $month -= 2;

list($startSign, $signName) = each($signs[$key]);

}

return $signName;

}

echo get_constellation(12, 11); // 射手座

echo get_constellation(6, 6); // 双子座

方法3:

/**

* 计算.星座

*

* @param int $month 月份

* @param int $date 年份

* @return str

*/

function get_constellation($month, $date){

$constellations = array(

'水瓶座', '双鱼座', '白羊座', '金牛座', '双子座', '巨蟹座',

'狮子座', '处女座', '天秤座', '天蝎座', '射手座', '摩羯座'

);

if( $date <= 22 ){

if( 1 != $month ){

$constellation = $constellations[$month - 2];

}else{

$constellation = $constellations[11];

}

}else{

$constellation = $constellations[$month - 1];

}

return $constellation;

}

echo get_constellation(12, 11); // 射手座

echo get_constellation(6, 6); // 双子座

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值