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

2018-01-06  本文已影响0人  Everglow_111

项目需要网上找了几个工具类计算都不准确!最后发现使用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);

}

上一篇下一篇

猜你喜欢

热点阅读