2017-08-08 51 views
1

我有一種方法應該將當前周的所有日期放入數組中。 下面是它的樣子:獲取本週的日期的正確方法

private void initWeek() 
    { 
     Calendar calendar = Calendar.getInstance(); 
     week_dates = new String[7]; 

     SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.US); 
     calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 

     for (int i = 0; i < 7; i++) 
     { 
      week_dates[i] = dateFormat.format(calendar.getTime()); 
      calendar.set(Calendar.DAY_OF_WEEK, i); 

     } 
    } 

但噹噹天是星期天,它給在下週日期,而不是在一個是星期天之前。

+0

您是指所有日期爲7天后? – Javad

+0

@Javad,是的,當前日期是星期日。但在任何一天都沒關係。 –

+0

您正在使用現在被java.time類取代的麻煩舊類。 –

回答

1
for (int i = 0; i < 7; i++) 
{ 
    week_dates[i] = dateFormat.format(calendar.getTime()); 
    //calendar.set(Calendar.DAY_OF_WEEK, i); 
    calendar.add(Calendar.DATE, 1); 
} 

使用Calendar.DATE,從週一增量1一天,你在元素都賦值爲0

我已評論你的原始代碼並替換了該行。原始行不斷更改最初選擇的當前日期。

+0

它的工作原理,但仍然不像我想要的那樣。 我在星期天(06/08)選擇了我的手機設置,代碼給了我這個天的輸出: https://gist.github.com/Twinkle942910/8f46667a2a506b5b0d4b3bdbd8cfaef5 星期天過後。而我想要的是這個星期天(本週)之前的所有日子。 –

+0

其實,經過測試,我意識到,它工作正常。好的解決方案 –

1

這就是我想出了: 編輯:嘗試添加Calendar.DATE

private void initWeek() 
{ 
    Calendar calendar = Calendar.getInstance(); 
    week_dates = new String[7]; 

    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.US); 
    calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); 

    for (int i = 0; i < 7; i++) 
    { 
     week_dates[i] = dateFormat.format(calendar.getTime()); 
     calendar.add(Calendar.DATE, 1); 

    } 
} 
+0

不起作用,每天給這些日期 https://gist.github.com/Twinkle942910/4e72f11c434f7b825ad8650cb640caaa –

+0

它非常有趣,也許你正在改變你的日曆在你的應用程序的其他地方?導致其對我的工作很好 – Javad

+0

不,只有這種方法 –

相關問題