Pegar a Segunda-feira da data passada!

Pessoal,

tenho um metodo que recebe uma data e quero que retorne a segunda-feira desta semana.

ex: passo para o metodo 30/01/2004 e ele me retorna 26/01/2004.

alguem tem algum exemplo???

valeu

Colocar a data num Calendar, e enquanto o dia da semana não for segunda, subtrair 1 dia da data?!

Eu fiquei curioso e escrevi uma “classezinha” pra testar. Eis o resultado:

[code]import java.util.*;

public class Segunda {

  public static void main(String[] args) {

        Calendar cal = previousMonday(new GregorianCalendar());

        System.out.println(cal);

  }

  public static Calendar previousMonday(Calendar calendar) {

        Calendar c = (Calendar)calendar.clone();

        while (c.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY)
              c.add(Calendar.DATE, -1);

        return c;
  }

}
[/code]

Repare que vc estará passando para o método previousMonday() um objeto GregorianCalendar que representa a data atual na localidade padrão (que é hoje, 30/01/2004).

No resultado, repare os campos DAY_OF_MONTH=26, DAY_OF_YEAR=26 e DAY_OF_WEEK=2.

O resultado exato que você quer. :wink: