计算两个日期之间的差

计算两个日期之间的差:
两个变量 d1,d2
例:d1="2018-05-16" , d2="2019-08-07"

public static int getMonthDiff(String d1, String d2){
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(sdf.parse(d1));
c2.setTime(sdf.parse(d2));
if(c1.getTimeInMillis() < c2.getTimeInMillis()) {
return 0;
}
int year1 = c1.get(Calendar.YEAR);
int year2 = c2.get(Calendar.YEAR);
int month1 = c1.get(Calendar.MONTH);
int month2 = c2.get(Calendar.MONTH);
int day1 = c1.get(Calendar.DAY_OF_MONTH);
int day2 = c2.get(Calendar.DAY_OF_MONTH);
int yearInterval = year1 - year2;
// 如果 d1的 月-日 小于 d2的 月-日 那么 yearInterval-- 这样就得到了相差的年数
if(month1 < month2 || month1 == month2 && day1 < day2) yearInterval --;
// 获取月数差值
int monthInterval = (month1 + 12) - month2 ;
if(day1 < day2) monthInterval --;
monthInterval %= 12;
return yearInterval * 12 + monthInterval;
} catch (ParseException e) {
e.printStackTrace();
}
return 0;
}
posted @ 2018-09-07 10:50  叶落の无痕  阅读(578)  评论(0编辑  收藏  举报