性别
public static String gender(String idNumber) {
int gender = 0;
if(idNumber.length() == 18){
char c = idNumber.charAt(idNumber.length() - 2);
gender = Integer.parseInt(String.valueOf(c));
}else{
char c = idNumber.charAt(idNumber.length() - 1);
gender = Integer.parseInt(String.valueOf(c));
}
if(gender % 2 == 1){
return "男";
return "1";
}else{
return "女";
return "2";
}
}
年龄
public static int countAge(String idNumber) {
if(idNumber.length() != 18 && idNumber.length() != 15){
throw new IllegalArgumentException("身份证号长度错误");
}
String year;
String yue;
String day;
if(idNumber.length() == 18){
year = idNumber.substring(6).substring(0, 4);
yue = idNumber.substring(10).substring(0, 2);
day = idNumber.substring(12).substring(0,2);
}else{
year = "19" + idNumber.substring(6, 8);
yue = idNumber.substring(8, 10);
day = idNumber.substring(10, 12);
}
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String fyear = format.format(date).substring(0, 4);
String fyue = format.format(date).substring(5, 7);
String fday=format.format(date).substring(8,10);
int age = 0;
if(Integer.parseInt(yue) == Integer.parseInt(fyue)){
if(Integer.parseInt(day) <= Integer.parseInt(fday)){
age = Integer.parseInt(fyear) - Integer.parseInt(year);
}
}else{
if(Integer.parseInt(yue) < Integer.parseInt(fyue)){
age = Integer.parseInt(fyear) - Integer.parseInt(year);
}else{
age = Integer.parseInt(fyear) - Integer.parseInt(year) - 1;
}
}
System.out.println("您今年的年龄为 = " + age);
return age;
}
星座
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 };
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];
}
return CONSTELLATION_ARR[11];
}
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) {
System.out.println(getConstellation("530121198903119561"));
}
}
生肖
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class BirthUtils {
public static final String[] ZODIAC_ARR = { "猴", "鸡", "狗", "猪", "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊" };
public static String getZodica(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return ZODIAC_ARR[cal.get(Calendar.YEAR) % 12];
}
public static String getZodica(String cardNo) {
String birthday = cardNo.substring(6, 14);
Date birthdate = null;
try {
birthdate = new SimpleDateFormat("yyyyMMdd").parse(birthday);
return getZodica(birthdate);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
System.out.println(getZodica("530121198903119561"));
}
}