美文网首页
根据出生日期计算宝宝的年龄,几岁几个月几天!

根据出生日期计算宝宝的年龄,几岁几个月几天!

作者: Everglow_111 | 来源:发表于2018-01-06 12:02 被阅读0次

    项目需要网上找了几个工具类计算都不准确!最后发现使用Calendar计算很方便.

    
    public static StringgetAge(String date) {
    
    String[] data = date.split("-");
    
        if (data.length <3)return "";
    
        Integer.valueOf(Log.d(TAG, data[0]));
    
        Integer.valueOf(Log.d(TAG, data[1]));
    
        Integer.valueOf(Log.d(TAG, data[2]));
    
        Calendar birthday =new GregorianCalendar(Integer.valueOf(data[0]), Integer.valueOf(data[1]), Integer.valueOf(data[2]));
    
        Calendar now = Calendar.getInstance();
    
        int day = now.get(Calendar.DAY_OF_MONTH) - birthday.get(Calendar.DAY_OF_MONTH);
      //月份从0开始计算,所以需要+1
        int month = now.get(Calendar.MONTH) +1 - birthday.get(Calendar.MONTH);
    
        int year = now.get(Calendar.YEAR) - birthday.get(Calendar.YEAR);
    
        //按照减法原理,先day相减,不够向month借;然后month相减,不够向year借;最后year相减。
    
        if (day <0) {
    
    month -=1;
    
            now.add(Calendar.MONTH, -1);//得到上一个月,用来得到上个月的天数。
    
            day = day + now.getActualMaximum(Calendar.DAY_OF_MONTH);
    
        }
    
    if (month <0) {
    
    month = (month +12) %12;
    
            year--;
    
        }
    
    System.out.println("年龄:" + year +"岁" + month +"月" + day +"天");
    
        StringBuffer tag =new StringBuffer();
    
        if (year >0) {
    
    tag.append(year +"岁");
    
        }
    
    if (month >0) {
    
    tag.append(month +"个月");
    
        }
    
    if (day >0) {
    
    tag.append(day +"天");
    
        }
    
    if (year ==0 && month ==0 && day ==0) {
    
    tag.append("今日出生");
    
        }
    
    return String.valueOf(tag);
    
    }
    
    

    相关文章

      网友评论

          本文标题:根据出生日期计算宝宝的年龄,几岁几个月几天!

          本文链接:https://www.haomeiwen.com/subject/uycynxtx.html