Calendar (WEEK_OF_MONTH)?

Ola pessoal,
estou com uma dúvida estranha, relacionada à classes do tipo Calendar.
Antes gostaria de saber se existe um método que me retorne os dias de uma semana, de um determinado mês, em um determinado ano. Eu não encontrei nada que fizesse isso, então desenvolvi o seguinte método:

         // instancia um Calendar com a data de hoje
        Calendar cal = Calendar.getInstance();
        while(cal.get(Calendar.DAY_OF_MONTH) < 14) {
            System.out.println("dia do mês: " + cal.get(Calendar.DAY_OF_MONTH));
            System.out.println("dia da semana: " + toStringDayOfWeek(cal.get(Calendar.DAY_OF_WEEK)));
            System.out.println("semana do mês: " + cal.get(Calendar.WEEK_OF_MONTH) + "\n");
            cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH) + 1);
        }

o código acima me retorna o seguinte:

dia do mês: 6
dia da semana: Seg
semana do mês: 2

dia do mês: 7
dia da semana: Ter
semana do mês: 2

dia do mês: 8
dia da semana: Qua
semana do mês: 2

dia do mês: 9
dia da semana: Qui
semana do mês: 2

dia do mês: 10
dia da semana: Sex
semana do mês: 2

dia do mês: 11
dia da semana: Sáb
semana do mês: 2

dia do mês: 12
dia da semana: Dom
semana do mês: 2

dia do mês: 13
dia da semana: Seg
semana do mês: 3

A minha dúvida é, por que a semana só é alterada segunda-feira, se a semana começa no Domingo?

Alguém pode me ajudar?

Creio que isso é um problema de Locale
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html#getFirstDayOfWeek()

Valeeeeeeewwwwwwwwwwwwwwwwww…