通过生日获取年龄+生肖+星座工具类

简介: 通过生日获取年龄+生肖+星座工具类🍅 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);


效果图:

2.png



相关文章
|
7月前
|
JavaScript 索引
利用身份证验证性别和获取生日
利用身份证验证性别和获取生日
|
7月前
|
JavaScript
js 输入身份证获取生日性别年龄
js 输入身份证获取生日性别年龄
|
6月前
必知的技术知识:Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳
必知的技术知识:Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳
103 0
wustojc5008祖孙年龄
wustojc5008祖孙年龄
45 0
|
JavaScript 前端开发
js实现输入身份证号得出生日、年龄和性别
js实现输入身份证号得出生日、年龄和性别
270 0
|
JavaScript
js输入身份证获取生日年龄性别
js输入身份证获取生日年龄性别
83 0
找年龄最大的人
找年龄最大的人
120 0
|
Java
关于用出生日期查询生日还有多少天的问题
关于用出生日期查询生日还有多少天的问题
189 0
|
前端开发 数据库
【日积月累】出生日期如何转换成年龄进行显示
【日积月累】出生日期如何转换成年龄进行显示
178 0
【日积月累】出生日期如何转换成年龄进行显示