1 /** 2 * 星座表 3 白羊:3.21-4.19 金牛:4.20-5.20 双子:5.21-6.21 4 巨蟹:6.22-7.22 狮子:7.23-8.22 处女:8.23-9.22 5 天平:9.23-10.23 天蝎:10.24-11.22 射手:11.23-12.21 6 魔蝎:12.22-1.19 水平:1.20-2.18 双鱼:2.19-3.20 7 8 * 9 * 【星座判断算法分析】 10 * 1、先判断月份再判断日 11 * 2、由上面的星座表总结出的规律如下 12 * 1)需知一: 1个星座跨占2个月份 13 * 2)需知二: 1个月份中有2个星座,所以存在星座之间的分隔日 14 * 思路: 15 * 1、先判断月份,得出该月份中的两个星座是那两个 16 * 2、根据天,得出准确的星座 17 */ 18 public String getConstellaction(int month, int day){ 19 20 // 根据当前传入的month确定当月中的2个星座,现在以“右边”星座的开始作为临界点(临界点用【】标注) 21 switch (month){ 22 case 1: 23 // 魔蝎:12.22-1.19 水平:1.【20】-2.18 24 25 if (day >= 20){ 26 return "水瓶座"; 27 }else{ 28 return "摩羯座"; 29 } 30 31 case 2: 32 // 水平:1.20-2.18 双鱼:2.【19】-3.20 33 if (day >= 19){ 34 return "双鱼座"; 35 }else{ 36 return "水瓶座"; 37 } 38 39 case 3: 40 // 双鱼:2.19-3.20 白羊:3.【21】-4.19 41 if (day >= 21){ 42 return "白羊座"; 43 }else{ 44 return "双鱼座"; 45 } 46 47 case 4: 48 // 白羊:3.21-4.19 金牛:4.20-5.【20】 49 if (day >= 20){ 50 return "金牛座"; 51 }else{ 52 return "白羊座"; 53 } 54 55 case 5: 56 // 金牛:4.20-5.20 双子:5.【21】-6.21 57 if (day >= 21){ 58 return "双子座"; 59 }else{ 60 return "金牛座"; 61 } 62 63 case 6: 64 // 双子:5.21-6.21 巨蟹:6.【22】-7.22 65 if (day >= 22){ 66 return "巨蟹座"; 67 }else{ 68 return "双子座"; 69 } 70 71 case 7: 72 // 巨蟹:6.22-7.22 狮子:7.【23】-8.22 73 if (day >= 23){ 74 return "狮子座"; 75 }else{ 76 return "巨蟹座"; 77 } 78 79 case 8: 80 // 狮子:7.23-8.22 处女:8.【23】-9.22 81 if (day >= 23){ 82 return "处女座"; 83 }else{ 84 return "狮子座"; 85 } 86 87 case 9: 88 // 处女:8.23-9.22 天平:9.【23】-10.23 89 if (day >= 23){ 90 return "天平座"; 91 }else{ 92 return "处女座"; 93 } 94 95 case 10: 96 // 天平:9.23-10.23 天蝎:10.【24】-11.22 97 if (day >= 24){ 98 return "天蝎座"; 99 }else{ 100 return "天平座"; 101 } 102 103 case 11: 104 // 天蝎:10.24-11.22 射手:11.【23】-12.21 105 if (day >= 23){ 106 return "射手座"; 107 }else{ 108 return "天蝎座"; 109 } 110 111 case 12: 112 // 射手:11.23-12.21 魔蝎:12.【22】-1.19 113 if (day >= 22){ 114 return "魔蝎座"; 115 }else{ 116 return "射手座"; 117 } 118 119 } 120 return null; 121 }