Java - чтобы получить дату начала и окончания каждой недели для данного месяца

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

Январь 2013 первая неделя - с 31 декабря 2012 года по 06 января 2013 года вторая неделя - с 7 января 2013 года по 13 января 2013 года Третья неделя - с 14 января 2013 года по 20 января 2013 года четвертая неделя - 21 января -2013 - 27 января 2013 года, пятая неделя - с 28 января 2013 года по 3 февраля 2013 года

public static void main(String[] args) {
    List<List<String>> weekdates = getNumberOfWeeks(2013, Calendar.JULY);
    for(List<String> weekDatesLoop:weekdates){
        System.out.println("Start day: "+weekDatesLoop.get(0).toString());
        System.out.println("End day: "+weekDatesLoop.get(1).toString());
    }
  }
public static List<List<String>> getNumberOfWeeks(int year, int month) {
        System.out.println("Month Id: "+month);
        month = month-1;
        System.out.println("Month Id: " + month);
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
        List<List<String>> weekdates = new ArrayList<List<String>>();

        List<String> dates = new ArrayList<String>();
        Calendar c = Calendar.getInstance();
        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, month);
        c.set(Calendar.DAY_OF_MONTH, 1);
        dates.add(format.format(c.getTime()));
        //int numOfWeeksInMonth = 1;
        while (c.get(Calendar.MONTH) == month) {
          //System.out.println(c.get(Calendar.DAY_OF_WEEK) );

          if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
            dates.add(format.format(c.getTime()));
            weekdates.add(dates);
          }
          else if (c.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY) {
            dates = new ArrayList<String>();
            dates.add(format.format(c.getTime()));
            //numOfWeeksInMonth++;
          }
          c.add(Calendar.DAY_OF_MONTH, 1);
        }
        if(dates.size() < 2){
          c.add(Calendar.DAY_OF_MONTH, -1);
          dates.add(format.format(c.getTime()));
          weekdates.add(dates);
        }
        System.out.println(weekdates);
        return weekdates;
      }

Я все еще работаю над этим. Может кто-нибудь, пожалуйста, помогите мне исправить это?

Ответы на вопрос(2)

Ваш ответ на вопрос