首页 > 编程语言 > 详细

java根据生日计算当前年龄,精确到月

时间:2019-10-18 16:31:53      阅读:495      评论:0      收藏:0      [点我收藏+]
public static String getAgeDetail(String date){
//如果有空格
int index = date.indexOf(" ");
if (index != -1){
date = date.substring(0 , index);
}
String[] data = date.split("-");

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--;

}

StringBuffer tag =new StringBuffer();
if (year >0) {

tag.append(year +".");

}
if (month >0) {

tag.append(month);

}
if (year ==0 && month ==0 && day ==0) {

tag.append("今日出生");

}
return String.valueOf(tag);
}

技术分享图片

 

java根据生日计算当前年龄,精确到月

原文:https://www.cnblogs.com/xiao1993/p/11698550.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!