Hola. Estoy intentando calcular el número de semana dentro de un mes (entre 1 y 5) a partir de una fecha dada. Por ejemplo para el 1-11-2011 debería de devolver 1 (primera semana dentro del mes de noviembre de 2011).
Utilizo la clase Calendar, concretamente la constante WEEK_OF_MONTH. El problema está en que me devuelve valores incorrectos. Ejemplo:
1) Calendar c = Calendar.getInstance();
c.set(2011, 10, 7); //Mes 10 = noviembre, y el día es 6
c.get(Calendar.WEEK_OF_MONTH)
Resultado = 2. Correcto, es la segunda semana en el mes de noviembre.
2) Calendar c = Calendar.getInstance();
c.set(2011, 0, 3); //Mes 0 = enero, y el día es el 3
c.get(Calendar.WEEK_OF_MONTH)
Resultado = 1. Incorrecto, ya que el día 3 está en la segunda semana. De hecho si pregunto por el 1 de enero de 2001 me devuelve que el número de semana es 0.
He probado cambiando el primer día de la semana: c.setFirstDayOfWeek(Calendar.MONDAY), pero el resultado es el mismo.
Alguna idea?
Un saludo.