1.实现代码
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class BirthUtils {
public static final String[] CONSTELLATION_ARR = { "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座", "魔羯座" };
public static final int[] CONSTELLATION_EDGE_DAY = { 20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22 };
/**
* 根据日期获取星座
* @return
*/
public static String getConstellation(Date date) {
if (date == null) {
return "";
}
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
if (day < CONSTELLATION_EDGE_DAY[month]) {
month = month - 1;
}
if (month >= 0) {
return CONSTELLATION_ARR[month];
}
// default to return 魔羯
return CONSTELLATION_ARR[11];
}
/**
* 根据身份证号判断用户星座
* @param cardNo
* @return
*/
public static String getConstellation(String cardNo) {
// 获取出生日期
String birthday = cardNo.substring(6, 14);
Date birthdate = null;
try {
birthdate = new SimpleDateFormat("yyyyMMdd").parse(birthday);
return getConstellation(birthdate);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
// 1989-03-11 双鱼座
System.out.println(getConstellation("530121198903119561"));
}
}