2016-03-09 4 views
0

В основном я пытаюсь создать список всех дат в течение недели с установленной даты и сохранить их в массиве String[]. Но у меня проблемы.Получить список всех дат за неделю с установленной даты JAVA

Так в основном, сегодня 09/03/2016 так в String[] массиве Я хочу сохранить:

09/03/2016 
10/03/2016 
11/03/2016 
12/03/2016 
13/03/2016 
14/03/2016 
15/03/2016 

Это мой код:

 Calendar calendar = Calendar.getInstance(); 
     calendar.add(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek() - calendar.get(Calendar.DAY_OF_WEEK)); 
     String[] weekly = new String[7]; 
     Arrays.fill(weekly, ""); 
     int today = calendar.getInstance().get(Calendar.DAY_OF_WEEK); 
     for(int i=today; i <= today-1; i++){ 
      weekly[i] = Integer.toString(i); 
      System.out.println(i); 
     } 

Было бы здорово, если бы кто-то может помочь меня

+1

Почему они пытаются сохранить его на первом месте? Это как-то актуально в вашей программе? Кроме того, я советую использовать JodaTime-библиотеку или Java Java java.time. Это позволит вам легко разместить все необходимые даты в массиве. Простое изменение его на то, что вам нужно, было объяснено здесь http://stackoverflow.com/a/20331243/4130059 – FilMiOs

+0

Решите. Вы говорите, что хотите * «все даты на неделю с установленной даты» *, и ваш пример с 9 марта по среду 16 марта поддерживает это, но ваш код, похоже, пытается найти первый день недели (Понедельник или воскресенье). Почему это происходит, когда вам это не кажется? --- Кроме того, ваш пример содержит 8 дат, но ваш массив составляет всего 7 длин. Прими решение. – Andreas

+0

@LukazsPioetrszci Дальнейшие дубликаты: [это] (http://stackoverflow.com/q/6617854/642706) и [это] (http://stackoverflow.com/q/10451784/642706). Перед публикацией просмотрите «Переполнение стека». –

ответ

1

Я не вижу, как это for цикл будет работать

for(int i=today; i <= today-1; i++){ 

Если присвоить значение today для i то собирается быть уже больше today - 1

Также вы даже не используя calendar в цикле

Как насчет

for (int i = 0; i < 7; i++) { 
    Date dt = calendar.getTime(); 
    // now format it using SimpleDateFormat 
    String val = df.format (dt); 
    weekly[i] = val; 
    calendar.add (Calendar.DAY_OF_WEEK, 1); 
} 
+0

Первая строка 'Date dt = calendar.add (Calendar.DAY_OF_WEEK, 1) .getTime()' не работает. Вы не можете делать 'getTime()' после, это даже работало для вас? –

+0

Да, вы правы, это была ошибка. 'это было даже для вас?' - извините, я не собираюсь его тестировать. –

+0

ОК, поэтому я пробовал это, и первая дата не начинается сегодня, она начинается с '07/03/2016' –

Смежные вопросы