复杂版:
// 定义出生年,生肖
let year = 2001;
let animal = [ '鼠', '牛', '虎', '兔', '龙', '蛇', '马', '羊', '猴', '鸡', '狗', '猪'];
//定义与2008相差的年份
let differ_year;
//接收生肖
let sx;
//定义星座数组
let constellation = ['水瓶座','双鱼座','白羊座','金牛座','双子座','巨蟹座','狮子座','处女座','天秤座','天蝎座','射手座','摩羯座'];
//定义中间值接收星座
let cn;
// 定义出生月
let month = 3;
// 定义出生日
let day = 24;
if (year >= 2008) {
//如果出生年份大于2008(鼠)时
differ_year = year - 2008;
//如果相差年份在12以内
if(differ_year < 12){
sx = animal[differ_year];
}else{
sx = animal[differ_year % 12];
}
//如果出生年份小于2008(鼠)时
} else {
differ_year = 2008 - year;
//在2008年之前相差年份所对应的生肖下标是相反的,故减12
if(differ_year < 12){
sx = animal[12-differ_year];
}else{
sx = animal[12-differ_year % 12];
}
}
switch(month){
case 1:
if(day <= 19 ){
//摩羯座
cn = constellation[11];
}else if(day <= 31){
// 水瓶座
cn = constellation[0];
}else{
//无效的日份
console.log(`这是无效的日份!!`);
}
break;
case 2:
if(day <= 18){
// 水瓶座
cn = constellation[0];
}else if(day <= 29){
//双鱼座
cn = constellation[1];
}else{
//无效的日份
console.log(`这是无效的日份!!`);
}
break;
case 3:
if(day <= 20){
// 双鱼座
cn = constellation[1];
}else if(day <= 31){
// 白羊座
cn = constellation[2];
}else{
//无效的日份
console.log(`这是无效的日份!!`);
}
break;
case 4:
if (day <= 19) {
// 白羊座
cn = constellation[2];
} else if (day <= 30){
// 金牛座
cn = constellation[3];
}else{
//无效的日份
console.log(`这是无效的日份!!`);
}
break;
case 5:
if (day <= 20){
// 金牛座
cn = constellation[3];
} else if(day <= 31){
// 双子座
cn = constellation[4];
}else{
//无效的日份
console.log(`这是无效的日份!!`);
}
break;
case 6:
if (day <= 21){
// 双子座
cn = constellation[4];
}else if(day <= 30 ){
// 巨蟹座
cn = constellation[5];
}else{
//无效的日份
console.log(`这是无效的日份!!`);
}
break;
case 7:
if (day <= 22){
// 巨蟹座
cn = constellation[5];
} else if(day <= 31){
// 狮子座
cn = constellation[6];
}else{
//无效的日份
console.log(`这是无效的日份!!`);
}
break;
case 8:
if (day <= 22){
// 狮子座
cn = constellation[6];
}else if(day <= 31){
// 处女座
cn = constellation[7];
}else{
//无效的日份
console.log(`这是无效的日份!!`);
}
break;
case 9:
if(day <= 22){
// 处女座
cn = constellation[7];
}else if(day <= 30){
// 天秤座
cn = constellation[8];
}else{
//无效的日份
console.log(`这是无效的日份!!`);
}
break;
case 10:
if(day <= 23){
// 天秤座
cn = constellation[8];
}else if(day <= 31){
// 天蝎座
cn = constellation[9];
}
break;
case 11:
if(day <= 23){
// 天蝎座
cn = constellation[9];
}else if(day <= 30){
// 射手座,
cn = constellation[10];
}else{
//无效的日份
console.log(`这是无效的日份!!`);
}
break;
case 12:
if(day <= 21){
// 射手座
cn = constellation[10];
}else if(day <= 31){
// 摩羯座
cn = constellation[11];
}else{
//无效的日份
console.log(`这是无效的日份!!`);
}
break;
default:
console.log(`这是无效的月份!!`);
break;
}
console.log(`${year}年${month}月${day}日出生的生肖是${sx},星座是${cn}`);
精简版:
// 定义生肖数组
let animal = ['猴','鸡','狗','猪','鼠','牛','虎','兔','龙','蛇','马','羊'];
// 定义星座数组
let constellation = [,
['摩羯座','水瓶座'], //1、 19 20
['水瓶座','双鱼座'], //2、 18 19
['双鱼座','白羊座'], //3、 20 21
['白羊座','金牛座'], //4、 19 20
['金牛座','双子座'], //5、 20 21
['双子座','巨蟹座'], //6、 21 22
['巨蟹座','狮子座'], //7、 22 23
['狮子座','处女座'], //8、 22 23
['处女座','天秤座'], //9、 22 23
['天秤座','天蝎座'], //10、23 24
['天蝎座','射手座'], //11、22 23
['射手座','摩羯座'] //12、21 22
];
// 定义星座分割日数组
let cn_day = [,19,18,20,19,20,21,22,22,22,23,22,21];
// 年
let year = 1901;
// 月
let month = 3;
// 日
let day = 24;
//接收下标
let x;
if(day > cn_day[month]) {
x = 1;
}else{
x = 0;
}
console.log(`生日${year}年${month}月${day}日的生肖为${animal[year % 12]},星座为${constellation[month][x]}`);
注意数组中的字符串类型元素一定要记得加单引号