最近在写交友系统的时候,用户信息需要根据填写的生日来计算生肖,以下是根据生日快速计算生肖的实例代码。
获取生肖
public static String zodiac(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
String[] zodiacs = { "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪", };
int zodiacIndex = (year - 1900) % 12;
return zodiacs[zodiacIndex];
}
获取星座
public static String constellation(Date date) {
Instant instant = date.toInstant();
// 将 java.time.Instant 转换为 java.time.LocalDate
LocalDate localDate = instant.atZone(ZoneId.systemDefault()).toLocalDate();
int day = localDate.getDayOfMonth();
switch (localDate.getMonth()) {
case JANUARY:
return (day < 20) ? "摩羯座" : "水瓶座";
case FEBRUARY:
return (day < 19) ? "水瓶座" : "双鱼座";
case MARCH:
return (day < 21) ? "双鱼座" : "白羊座";
case APRIL:
return (day < 20) ? "白羊座" : "金牛座";
case MAY:
return (day < 21) ? "金牛座" : "双子座";
case JUNE:
return (day < 22) ? "双子座" : "巨蟹座";
case JULY:
return (day < 23) ? "巨蟹座" : "狮子座";
case AUGUST:
return (day < 23) ? "狮子座" : "处女座";
case SEPTEMBER:
return (day < 23) ? "处女座" : "天秤座";
case OCTOBER:
return (day < 24) ? "天秤座" : "天蝎座";
case NOVEMBER:
return (day <= 22) ? "天蝎座" : "射手座";
case DECEMBER:
return (day < 22) ? "射手座" : "摩羯座";
default:
return "";
}
}
end
【推荐阅读】