根据生日或者日期 获取 生肖和星座的 JavaScript代码

以前写过一个,巨傻,用了一堆的if ...else 和 switch 等等。

现在稍微改进了一下,虽然没什么技术含量,但代码简练多了。

<script>

//取生肖, 参数必须是四位的年

function getshengxiao(yyyy){

//by Go_Rush(阿舜) from http://ashun.cnblogs.com/

var arr=['猴','鸡','狗','猪','鼠','牛','虎','兔','龙','蛇','马','羊'];

return /^\d{4}$/.test(yyyy)?arr[yyyy%12]:null

}

// 取星座, 参数分别是 月份和日期

function getxingzuo(month,day){

//by Go_Rush(阿舜) from http://ashun.cnblogs.com/

var d=new Date(1999,month-1,day,0,0,0);

var arr=[];

arr.push(["魔羯座",new Date(1999, 0, 1,0,0,0)])

arr.push(["水瓶座",new Date(1999, 0,20,0,0,0)])

arr.push(["双鱼座",new Date(1999, 1,19,0,0,0)])

arr.push(["牡羊座",new Date(1999, 2,21,0,0,0)])

arr.push(["金牛座",new Date(1999, 3,21,0,0,0)])

arr.push(["双子座",new Date(1999, 4,21,0,0,0)])

arr.push(["巨蟹座",new Date(1999, 5,22,0,0,0)])

arr.push(["狮子座",new Date(1999, 6,23,0,0,0)])

arr.push(["处女座",new Date(1999, 7,23,0,0,0)])

arr.push(["天秤座",new Date(1999, 8,23,0,0,0)])

arr.push(["天蝎座",new Date(1999, 9,23,0,0,0)])

arr.push(["射手座",new Date(1999,10,22,0,0,0)])

arr.push(["魔羯座",new Date(1999,11,22,0,0,0)])

for(var i=arr.length-1;i>=0;i--){

if (d>=arr[i][1]) return arr[i][0];

}

}

/*

魔羯座(12/22 - 1/19)、水瓶座(1/20 - 2/18)、双鱼座(2/19 - 3/20)、牡羊座(3/21 - 4/20)、金牛座(4/21 - 5/20)、

双子座(5/21 - 6/21)、巨蟹座(6/22 - 7/22)、狮子座(7/23 - 8/22)、处女座(8/23 - 9/22)、天秤座(9/23 - 10/22)、

天蝎座(10/23 - 11/21)、射手座(11/22 - 12/21)

*/

</script>