Pegar a Segunda-feira da data passada!

2 respostas
A

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

2 Respostas

fenrir

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

D

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

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;
      }


}

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:

Criado 30 de janeiro de 2004
Ultima resposta 30 de jan. de 2004
Respostas 2
Participantes 3