2010-12-16 70 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);