通过生日获取年龄+生肖+星座工具类
🍅 Java学习路线:搬砖工的Java学习路线
🍅 作者:程序员小王
🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF
🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕
BirthdayUtil:
package com.tjcu.utils;import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;public class BirthdayUtil {//根据生日计算生肖,年龄,星座private final static int[] dayArr = new int[] { 20, 19, 21, 20, 21, 22, 23,23, 23, 24, 23, 22 };private final static ArrayList<String> constellationList = new ArrayList<>();//存放星座的集合static {constellationList.add(0, "水瓶座");constellationList.add(1, "双鱼座");constellationList.add(2, "白羊座");constellationList.add(3, "金牛座");constellationList.add(4, "双子座");constellationList.add(5, "巨蟹座");constellationList.add(6, "狮子座");constellationList.add(7, "处女座");constellationList.add(8, "天秤座");constellationList.add(9, "天蝎座");constellationList.add(10, "射手座");constellationList.add(11, "魔羯座");}//获得年龄public static Integer getAge(Date birthday){int year1 = birthday.getYear();Date date = new Date();int year2 = date.getYear();return year2-year1;}//获得生肖public static String getChineseZodiac(Date birthday) {int year = birthday.getYear();//0代表1900年if (year < 0) {return "未知";}int start = 0;String[] years = new String[] { "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊","猴", "鸡", "狗", "猪" };return years[(year - start) % 12];}//获得星座/*** 传入日期,返回星座*/public static String getConstellation(Date date) {String constellation = "";Calendar birthday = Calendar.getInstance();birthday.setTime(date);int month = birthday.get(Calendar.MONTH) + 1;int day = birthday.get(Calendar.DAY_OF_MONTH);switch (month) {case 1://Capricorn 摩羯座(12月22日~1月20日)constellation = day <= 20 ? constellationList.get(11) : constellationList.get(0);break;case 2://Aquarius 水瓶座(1月21日~2月19日)constellation = day <= 19 ? constellationList.get(0) : constellationList.get(1);break;case 3://Pisces 双鱼座(2月20日~3月20日)constellation = day <= 20 ? constellationList.get(1) : constellationList.get(2);break;case 4://白羊座 3月21日~4月20日constellation = day <= 20 ? constellationList.get(2) : constellationList.get(3);break;case 5://金牛座 4月21~5月21日constellation = day <= 21 ? constellationList.get(3) : constellationList.get(4);break;case 6://双子座 5月22日~6月21日constellation = day <= 21 ? constellationList.get(4) : constellationList.get(5);break;case 7://Cancer 巨蟹座(6月22日~7月22日)constellation = day <= 22 ? constellationList.get(5) : constellationList.get(6);break;case 8://Leo 狮子座(7月23日~8月23日)constellation = day <= 23 ? constellationList.get(6) : constellationList.get(7);break;case 9://Virgo 处女座(8月24日~9月23日)constellation = day <= 23 ? constellationList.get(7) : constellationList.get(8);break;case 10://Libra 天秤座(9月24日~10月23日)constellation = day <= 23 ? constellationList.get(8) : constellationList.get(9);break;case 11://Scorpio 天蝎座(10月24日~11月22日)constellation = day <= 22 ? constellationList.get(9) : constellationList.get(10);break;case 12://Sagittarius 射手座(11月23日~12月21日)constellation = day <= 21 ? constellationList.get(10) : constellationList.get(11);break;}return constellation;}}
测试:
student.setSbirthday(new Date());Date birthday = student.getSbirthday();//获取年龄Integer age = BirthdayUtil.getAge(birthday);//获取生肖String attr = BirthdayUtil.getChineseZodiac(birthday);//获取星座String star = BirthdayUtil.getConstellation(birthday);System.out.println("生日:"+birthday);System.out.println("年龄:"+attr);System.out.println("生肖:"+attr);System.out.println("星座:"+star);
效果图: