對同一對象傳遞相同方法的參數相同。它通常會顯示爲真,這正是我所期望的。但是......有時它顯示錯誤。 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
不是功課。我想我沒有使用日期,因爲大多數這些方法不贊成使用日曆。 –