2012-12-04 440 views
0

在我的Java應用程序,我是打印所有兩個日期之間的日期通過使用下面的代碼..如何獲得java中兩個日期之間的替代日期?

List<Date> dates = new ArrayList<Date>(); 

    String str_date ="2012-12-01"; 
    String end_date ="2012-12-06"; 

    DateFormat formatter = new SimpleDateFormat("yyyy-mm-dd"); 
    Date startDate = (Date)formatter.parse(str_date); 
    Date endDate = (Date)formatter.parse(end_date); 
    long interval = 24*1000 * 60 * 60; // 1 hour in millis 
    long endTime =endDate.getTime() ; // create your endtime here, possibly using Calendar or Date 
    long curTime = startDate.getTime(); 
    while (curTime <= endTime) { 
     dates.add(new Date(curTime)); 
     curTime += interval; 
    } 
    int i=0; 
    for(i=0+i;i<dates.size();i++){ 
     Date d =(Date)dates.get(i); 
     String ds = formatter.format(d);  
     System.out.println("    " + ds+"   "); 
    } 

,但我想2種類型,如日期....

  1. 獲取替代日EX:2012-12-01 2012-12-03 2012-12-06
  2. 而且我想在給定的兩個日期中只打印週六和週日。

其實我試圖打印i+1 or i-1它給數組索引越界..

+1

http://stackoverflow.com/問題/ 1005523 /如何添加一天的日期 – assylias

+0

感謝您的快速回放...是他們找到使用日曆類日期列表的任何方式... –

回答

1

我想你可以用這種方式嘗試 -

Date startDate = (Date) formatter.parse(str_date); 
Date endDate = (Date) formatter.parse(end_date); 

Calendar cal = Calendar.getInstance(); 
Calendar cal1 = Calendar.getInstance(); 
cal.setTime(startDate); 
cal1.setTime(endDate); 
int i=0; // use this for alternative date print 
while (!cal.equals(cal1)) { 
    cal.add(Calendar.DATE, 1); 
    if(cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY || cal.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY) 
     System.out.println(cal.get(Calendar.DAY_OF_WEEK)); 
    System.out.println(cal.getTime()); 

} 
+0

Thankyou..for replay。 –

+0

但是在這段代碼中沒有打印開始日期......它總是打印+1結果只是他們對這些的任何解決方案.. –

+0

首先打印然後加入到calander –

相關問題