function getStar(month,date)
{
if((date+"").length!=2)
date = "0"+date;
var star = {
"白羊座":[321,420],
"金牛座":[421,520],
"双子座":[521,621],
"巨蟹座":[622,722],
"狮子座":[723,822],
"处女座":[823,922],
"天秤座":[923,1022],
"天蝎座":[1023,1121],
"射手座":[1122,1221],
"摩羯座":[1222,1319],//特殊处理
"水瓶座":[120,219],
"双鱼座":[220,320]
}
var tmp = parseInt(""+month+date,10);
if(tmp<119)//对摩羯座进行特殊处理
tmp = parseInt("13"+date,10);
for( var s in star )
{
if(tmp>star[s][0]&&tmp<star[s][1])
{
return s;
}
}
}
alert(getStar(3,24));
alert(getStar(12,25));
具体日期匆匆抄来的,你比对一下好了
对摩羯座进行了特殊处理,因为他的时间段是12月到1月,就把那个1月当成13月来处理了,比较方便
{
if((date+"").length!=2)
date = "0"+date;
var star = {
"白羊座":[321,420],
"金牛座":[421,520],
"双子座":[521,621],
"巨蟹座":[622,722],
"狮子座":[723,822],
"处女座":[823,922],
"天秤座":[923,1022],
"天蝎座":[1023,1121],
"射手座":[1122,1221],
"摩羯座":[1222,1319],//特殊处理
"水瓶座":[120,219],
"双鱼座":[220,320]
}
var tmp = parseInt(""+month+date,10);
if(tmp<119)//对摩羯座进行特殊处理
tmp = parseInt("13"+date,10);
for( var s in star )
{
if(tmp>star[s][0]&&tmp<star[s][1])
{
return s;
}
}
}
alert(getStar(3,24));
alert(getStar(12,25));
function getStar(month,date)
{
if((date+"").length!=2)
date = "0"+date;
var star = {
"白羊座":[321,420],
"金牛座":[421,520],
"双子座":[521,621],
"巨蟹座":[622,722],
"狮子座":[723,822],
"处女座":[823,922],
"天秤座":[923,1022],
"天蝎座":[1023,1121],
"射手座":[1122,1221],
"摩羯座":[1222,1319],//特殊处理
"水瓶座":[120,219],
"双鱼座":[220,320]
}
var tmp = parseInt(""+month+date,10);
if(tmp<120)//对摩羯座进行特殊处理,囧
tmp = parseInt("13"+date,10);
for( var s in star )
{
if(tmp>star[s][0]&&tmp<star[s][1])
{
return s;
}
}
}
alert(getStar(3,24));
alert(getStar(12,25));
function getBirth(year){
var arr=['猴','鸡','狗','猪','鼠','牛','虎','兔','龙','蛇','马','羊'];
return /^\d{4}$/.test(year)?arr[year%12]:null
}// 取星座, 参数分别是 月份和日期
/*
魔羯座(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)
*/
function getConstellation(month,day){
var s="魔羯水瓶双鱼牡羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯"; var arr=[19,50,84,116,148,181,214,246,278,310,341,373,383];
for(var i=0;i<arr.length;i++){
if ((((month-1)<<5)+day) <= arr[i]) return s.substr(i*2,2);
}
return "error";
}
好漂亮的算法,学习,以前我一起以为JS没有位运算。function getConstellation(month,day){
var s="魔羯水瓶双鱼牡羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯";
var arr=[119,218,320,420,520,621,722,822,922,1022,1121,1221,1231];//我觉得这样更好理解一点儿……
var tmp = month*100+day;
for(var i=0;i<arr.length;i++)
{
if (tmp <= arr[i])
return s.substr(i*2,2);
}
return "error";
}