2013-04-13 5 views
3

Я хочу показать дни недели с датой этой недели. Как и сегодня, я хочу, чтобы отобразить в моем календаре, как это:Android Отобразить дату недели

Mon Tues Wed Thurs Fri Sat Sun 
8 9  10 11 12 13 14 

Затем, когда он еще неделю начинается, числа изменений .. Итак, я экспериментировал с андроид календарном класса. Так я вышел с этим:

TextView[] tx = {t1, t2, t3, t4, t5, t6, t7}; 

    SimpleDateFormat curFormater = new SimpleDateFormat("EEE dd"); 
    GregorianCalendar date = new GregorianCalendar(); 
    String[] dateStringArray = new String[7]; 

    for (int day = 0; day < 7; day++) { 
     dateStringArray[day] = curFormater.format(date.getTime()); 
     date.roll(Calendar.DAY_OF_MONTH, true); 
     System.out.println("HELLO WORLD DAYS: " + dateStringArray[day]); 
     tx[day].setText(dateStringArray[day]); 
    } 

только, чтобы проверить, могу ли я достичь своей цели. Ну, это близко к тому, что я хочу. Проблема заключается в том, например, сегодня суббота, выходной это:

Sat Sun Mon Tue Wed Thur Fri 
13 14 15 16 17 18  19 

Затем tomorrow..i'm предполагаю, что это станет

Sun Mon Tue Wed Thur Fri Sat 
14 15 16 17 18  19 20 

Итак, исходные изменения день. Есть ли способ, который поможет мне достичь моей цели. Возможно, я пропустил это сообщение во время чтения документа. Пожалуйста, Спасибо. Любая помощь будет оценена по достоинству.

+0

может быть использование этого метода calender.get (calender.DAY_OF_WEEK) Получить сегодня неделю – sri

+0

да, я также попробовал, что один. это дало мне дни недели, но началось в субботу. Выход идет следующим образом: 'sat-13 sun-07 mon-08 tues-09 wed-10 thu-11 fri-12' очень близко .. но суббота разрушена .. – elL

+0

@elL Проверьте мой ответ. Я тестировал, он работает – Pragnani

ответ

1

Попробуйте

SimpleDateFormat curFormater = new SimpleDateFormat("EEE dd"); 
     GregorianCalendar date = new GregorianCalendar(); 
     String[] dateStringArray = new String[7]; 
      date.set(GregorianCalendar.DATE, date.get(GregorianCalendar.DATE)-date.get(GregorianCalendar.DAY_OF_WEEK)); 
     for (int day = 0; day < 7; day++) { 
      dateStringArray[day] = curFormater.format(date.getTime()); 
      date.setFirstDayOfWeek(day); 
      date.roll(Calendar.DAY_OF_MONTH, true); 
      System.out.println("HELLO WORLD DAYS: " + dateStringArray[day]); 
     } 
} 
+0

хорошо, я попробую этот – elL

+0

hmmm. он начинается в субботу (может быть, потому что сегодня суббота?). , хотя я добавил этот 'date.setFirstDayOfWeek (GregorianCalendar.MONDAY);' результат будет 'sat-06 sun-07 mon-08 tues-09 wed-10 thur-11 fri-12' ..hmm – elL

+0

'date.set (GregorianCalendar.DATE, date.get (GregorianCalendar.DATE) -date.get (GregorianCalendar.DAY_OF_WEEK) +1);' добавьте +1 в конец, чтобы вывести даты с '07 08 09 10 11 12 13' и в первый день 7 – Pragnani

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