博客园  :: 首页  :: 管理

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

Posted on 2007-05-11 11:53  Go_Rush  阅读(4433)  评论(6编辑  收藏  举报

以前写过一个,巨傻,用了一堆的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(199901,0,0,0)])
    arr.push([
"水瓶座",new Date(19990,20,0,0,0)])
    arr.push([
"双鱼座",new Date(19991,19,0,0,0)])
    arr.push([
"牡羊座",new Date(19992,21,0,0,0)])
    arr.push([
"金牛座",new Date(19993,21,0,0,0)])
    arr.push([
"双子座",new Date(19994,21,0,0,0)])
    arr.push([
"巨蟹座",new Date(19995,22,0,0,0)])    
    arr.push([
"狮子座",new Date(19996,23,0,0,0)])
    arr.push([
"处女座",new Date(19997,23,0,0,0)])
    arr.push([
"天秤座",new Date(19998,23,0,0,0)])
    arr.push([
"天蝎座",new Date(19999,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>