给定公历日期,计算返回该日期对应的十二星座。
public static String getXingZuoName(int month, int day);
注意:参数month和day均为公历月、日。
返回的中文星座名如:处女座。
import java.util.Map;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.List;
//import android.util.Log;
public class XingZuo {
private static List<Map<String, Object>> LIST = null;
private static float[][] floatXingZuo = null;
public XingZuo() {
// LIST=loadXingZuo12();
// floatXingZuo=loadXingZuoFloatValue();
}
public static String getXingZuoName(int month, int day) {
if (floatXingZuo == null)
floatXingZuo = loadXingZuoFloatValue();
String ds = String.format("%02d", day);
float target = Float.valueOf(month + "." + ds);
boolean bool1 = Float.compare(target, 12.22f) >= 0 ? true : false;
boolean bool2 = Float.compare(target, 1.20f) <= 0 ? true : false;
if (bool1 || bool2) {
return "摩羯座";
}
int i;
boolean b1, b2;
for (i = 0; i < 12; i++) {
b1 = Float.compare(target, floatXingZuo[0][i]) >= 0 ? true : false;
b2 = Float.compare(target, floatXingZuo[1][i]) <= 0 ? true : false;
if (b1 && b2)
break;
}
Map map = (Map) (LIST.get(i));
return map.get("XINGZUO_NAME") + "";
}
private static float[][] loadXingZuoFloatValue() {
if (LIST == null)
LIST = loadXingZuo12();
Map map = null;
// String xzname=null;
int mind, maxd, minm, maxm;
float[][] fxingzuo = new float[2][12];
float start, end;
for (int i = 0; i < 12; i++) {
map = (Map) (LIST.get(i));
mind = Integer.parseInt(map.get("MIN_DAY") + "");
maxd = Integer.parseInt(map.get("MAX_DAY") + "");
minm = Integer.parseInt(map.get("MIN_MONTH") + "");
maxm = Integer.parseInt(map.get("MAX_MONTH") + "");
start = Float.valueOf(minm + "." + mind);
end = Float.valueOf(maxm + "." + maxd);
fxingzuo[0][i] = start;
fxingzuo[1][i] = end;
}
return fxingzuo;
}
private static List loadXingZuo12() {
String XINGZUO_NAME = "XINGZUO_NAME";
String MIN_DAY = "MIN_DAY";
String MIN_MONTH = "MIN_MONTH";
String MAX_DAY = "MAX_DAY";
String MAX_MONTH = "MAX_MONTH";
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = null;
map = new HashMap<String, Object>();
map.put(XINGZUO_NAME, "白羊座");
map.put(MIN_DAY, 21);
map.put(MAX_DAY, 20);
map.put(MIN_MONTH, 3);
map.put(MAX_MONTH, 4);
list.add(map);
map = new HashMap<String, Object>();
map.put(XINGZUO_NAME, "金牛座");
map.put(MIN_DAY, 21);
map.put(MAX_DAY, 21);
map.put(MIN_MONTH, 4);
map.put(MAX_MONTH, 5);
list.add(map);
map = new HashMap<String, Object>();
map.put(XINGZUO_NAME, "双子座");
map.put(MIN_DAY, 22);
map.put(MAX_DAY, 21);
map.put(MIN_MONTH, 5);
map.put(MAX_MONTH, 6);
list.add(map);
map = new HashMap<String, Object>();
map.put(XINGZUO_NAME, "巨蟹座");
map.put(MIN_DAY, 22);
map.put(MAX_DAY, 22);
map.put(MIN_MONTH, 6);
map.put(MAX_MONTH, 7);
list.add(map);
map = new HashMap<String, Object>();
map.put(XINGZUO_NAME, "狮子座");
map.put(MIN_DAY, 23);
map.put(MAX_DAY, 23);
map.put(MIN_MONTH, 7);
map.put(MAX_MONTH, 8);
list.add(map);
map = new HashMap<String, Object>();
map.put(XINGZUO_NAME, "处女座");
map.put(MIN_DAY, 24);
map.put(MAX_DAY, 23);
map.put(MIN_MONTH, 8);
map.put(MAX_MONTH, 9);
list.add(map);
map = new HashMap<String, Object>();
map.put(XINGZUO_NAME, "天秤座");
map.put(MIN_DAY, 24);
map.put(MAX_DAY, 23);
map.put(MIN_MONTH, 9);
map.put(MAX_MONTH, 10);
list.add(map);
map = new HashMap<String, Object>();
map.put(XINGZUO_NAME, "天蝎座");
map.put(MIN_DAY, 24);
map.put(MAX_DAY, 22);
map.put(MIN_MONTH, 10);
map.put(MAX_MONTH, 11);
list.add(map);
map = new HashMap<String, Object>();
map.put(XINGZUO_NAME, "射手座");
map.put(MIN_DAY, 23);
map.put(MAX_DAY, 21);
map.put(MIN_MONTH, 11);
map.put(MAX_MONTH, 12);
list.add(map);
map = new HashMap<String, Object>();
map.put(XINGZUO_NAME, "摩羯座");
map.put(MIN_DAY, 22);
map.put(MAX_DAY, 20);
map.put(MIN_MONTH, 12);
map.put(MAX_MONTH, 1);
list.add(map);
map = new HashMap<String, Object>();
map.put(XINGZUO_NAME, "水瓶座");
map.put(MIN_DAY, 21);
map.put(MAX_DAY, 19);
map.put(MIN_MONTH, 1);
map.put(MAX_MONTH, 2);
list.add(map);
map = new HashMap<String, Object>();
map.put(XINGZUO_NAME, "双鱼座");
map.put(MIN_DAY, 20);
map.put(MAX_DAY, 20);
map.put(MIN_MONTH, 2);
map.put(MAX_MONTH, 3);
list.add(map);
return list;
}
}