【发布时间】:2015-05-18 08:55:48
【问题描述】:
我不仅想找到确切的年龄,还应该找到确切的月份。 即当前日期:18-05-2015,我要测试的日期是 01-01-2010-输出应该是 4年8个月。
public float getAge (int _year, int _month, int _day) {
GregorianCalendar cal = new GregorianCalendar();
int y, m, d,a,b;
//float ans = 0;
y = cal.get(Calendar.YEAR);
m = cal.get(Calendar.MONTH);
d = cal.get(Calendar.DAY_OF_MONTH);
cal.set(_year, _month, _day);
a = y - (cal.get(Calendar.YEAR));
// b=m-(cal.get(Calendar.MONTH));
if ((m < cal.get(Calendar.MONTH))
|| ((m == cal.get(Calendar.MONTH)) && (d < cal
.get(Calendar.DAY_OF_MONTH)))) {
--a;
}
if(a < 0)
throw new IllegalArgumentException("Age < 0");
ans=a;
return ans;
}
【问题讨论】:
-
以月计算日期差。然后使用整数除以 12。然后执行取模。划分的结果是年份。其余的(取模的结果)是月份。
标签: android methods datepicker monthcalendar