2010-12-16 56 views
0

在JSP頁面中,我有四個示例日期,如01-十進制,15-十進制,30-十進制和15-一月。我需要檢查上述日期和當前日期的差異是否是15找到兩個日期之間的差異

這裏是我的嘗試:

Calendar calendar = Calendar.getInstance(); 
    Calendar calendar1 = Calendar.getInstance(); 
    Calendar calendar2 = Calendar.getInstance(); 
    Calendar calendar3 = Calendar.getInstance(); 
    Calendar calendar4 = Calendar.getInstance(); 

    calendar1.set(2011, 11, 02); 
    calendar2.set(2011, 06, 02); 
    calendar3.set(2011, 09, 07); 
    calendar4.set(2011, 06, 05); 

    long milliseconds1 = calendar1.getTimeInMillis(); 
    long milliseconds2 = calendar.getTimeInMillis(); 

    long diff = milliseconds2 - milliseconds1; 
    long diffDays = diff/(24 * 60 * 60 * 1000); 

    if (diffDays <= 15) { 
     System.out.println("Fifteen"); 
    } else { 
     System.out.println("No Fifteen"); 
      } 

我已經檢查的條件對所有的四種情形的差異是15或不。將這些日曆實例放入地圖或列表中。我不知道該怎麼做。

+0

[日期在Java中計算的差異(可能重複http://stackoverflow.com/questions/453388/calculating-difference-in-dates- in-java) – 2010-12-16 10:51:03

+2

您不應該在JSP中進行類似的計算。在後臺java服務bean中執行它並將這些值公開給JSP。 – 2010-12-16 10:58:02

+0

在JSP文件中錯誤地寫入Java代碼並不會使其成爲JSP問題,在普通的Java類中這樣做時會遇到完全相同的問題。所以我刪除了JSP標籤。 – BalusC 2010-12-16 12:47:37

回答

1

我會建議使用joda time爲此。它也會影響時區和夏令時的差異。以下是如何獲得兩個日期之間的天數差異的示例。

Days d = Days.daysBetween(startDate, endDate); 
int days = d.getDays(); 
if(days==15){ 
    //do something 
} 
0

隨着date4j庫:

int days = dt.numDaysFrom(today);