我一直在使用以下代码来计算两个日期之间的差异,但我遇到了一个不寻常的错误:
如果我通过以下日期:
d1 = 2017 年 8 月 12 日 d2 = 2022 年 7 月 31 日
它返回:24055 ..
结果不应该作为月数返回吗?
public static int CalcDateDiff( java.util.Date date1, java.util.Date date2) {
if(date1 == null || date2 ==null )
{
if(date2 == null)
{
Calendar d1 = Calendar.getInstance();
d1.setTime(date1);
final Calendar d2 = Calendar.getInstance();
int diff = (d2.get(Calendar.YEAR) - d1.get(Calendar.YEAR)) * 12 + d2.get(Calendar.MONTH) - d1.get(Calendar.MONTH);
return diff;
}
else
return -1;
}
else
{
Calendar d1 = Calendar.getInstance();
d1.setTime(date1);
final Calendar d2 = Calendar.getInstance();
d2.setTime(date2);
int diff = (d2.get(Calendar.YEAR) - d1.get(Calendar.YEAR)) * 12 + d2.get(Calendar.MONTH) - d1.get(Calendar.MONTH);
return diff;
}
}
提前致谢!