对同一对象传递相同方法的参数相同。它通常会显示为真,这正是我所期望的。但是......有时它显示错误。 100次中有2-3次。这种方法会导致这种行为有什么问题?传递相同参数时方法执行的方式不同
年,月和日分别是包含“2012”,“4”,“1”的实例变量。
public boolean isInDateRange(String startDate, String endDate)
{
if(startDate == null || endDate == null){
return false;
}
Calendar today = Calendar.getInstance();
today.set(Integer.valueOf(year), Integer.valueOf(month), Integer.valueOf(day));
Calendar start = Calendar.getInstance();
//subtract 1 from the month parameter because java.util.Calendar's months
//go from 0 to 11 instead of 1 to 12.
start.set(Integer.valueOf(startDate.substring(0, 4)), Integer.valueOf(startDate.substring(5, 7)) - 1, Integer.valueOf(startDate.substring(8, 10)));
Calendar end = Calendar.getInstance();
end.set(Integer.valueOf(endDate.substring(0, 4)), (Integer.valueOf(endDate.substring(5, 7))) -1 , Integer.valueOf(endDate.substring(8, 10)));
return today.compareTo(start) >= 0 && today.compareTo(end) <= 0;
}
这里是我传递什么给它
calendarDetails.getTuesday().isInDateRange("2012-05-01 00:00:00", "2012-05-01 00:00:00")
已编辑。知道我忘记了一些东西。我将它传递给循环中的相同值100次。 –
这功课是这样吗?如果没有,为什么不使用'Date'和'SimpleDateFormat'? 'Date'具有'before()'和'after()'方法。 'SimpleDateFormat'允许'String'和'Date'之间的轻松覆盖。 – BalusC
不是功课。我想我没有使用日期,因为大多数这些方法不赞成使用日历。 –