java 6.0
假设今天是: 2018年8月8日
这里方法返回2个日期的差异,以月为单位.
public static Integer getDiffMonths(Date dateFrom, Date dateTo) {
Calendar cal1 = new GregorianCalendar();
cal1.setTime(dateFrom);
Calendar cal2 = new GregorianCalendar();
cal2.setTime(dateTo);
return differenceInMonths(cal1, cal2);
}
private static Integer differenceInMonths(Calendar dateFrom, Calendar dateTo) {
int month1 = dateFrom.get(Calendar.YEAR) * 12 + dateFrom.get(Calendar.MONTH);
int month2 = dateTo.get(Calendar.YEAR) * 12 + dateTo.get(Calendar.MONTH);
int diff = month2 - month1;
return diff;
}
Run Code Online (Sandbox Code Playgroud)
这里有4个测试用例的结果:
1.
currentDate = Aug 08 2018
DateTo = Aug 13 2018
diffMonth = 0
Run Code Online (Sandbox Code Playgroud)
2.
currentDate = Aug 08 2018
DateTo = Oct 14 2018
diffMonth = 2
Run Code Online (Sandbox Code Playgroud)
3.
currentDate = Aug 08 2018
DateTo = Jan 03 2019
diffMonth = 5
Run Code Online (Sandbox Code Playgroud)
错误:差异必须是4个月
4.
currentDate = Aug 08 2018
DateTo = Aug 03 2019
diffMonth = 12
Run Code Online (Sandbox Code Playgroud)
错误:差异必须是11个月
正如您所见,测试用例#1和#2是正确的,但测试用例#3和#4不正确.
为什么?
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |