Obter o 1º e Ultimo dia da Semana

7 respostas
R

Tô precisando de ajuda!!!

Preciso criar um método onde eu passe a semana(numero da semana) e o ano e ele me retorna o dia/mes/ano do inicio e fim da semana…

Consegui fazer reiventado a roda, mas acredito que a API me forneça formas mais elegantes…

Dei uma olhada no GregorianCalendar e vi que é possivel eu saber o numero da semana apartir de uma data(além de um monte outras informações)… só que o que eu vou ter pra chegar nisso é o numero da semana e o ano…

Alguma ideia???

7 Respostas

B
GregorianCalendar data = new GregorianCalendar();
data.set(Calendar.YEAR, ano_que_vc_tem);
data.setFirstDayOfWeek(Calendar.SUNDAY);
data.set(Calendar.WEEK_OF_YEAR, numero_da_semana_q_vc_tem);

data.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);

/* Agora é só pegar as informações que você quiser sobre o primeiro dia da semana */

data.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
/* Agora é só pegar as informações que você quiser sobre o último dia da semana */

Acho que é isso… Qualquer coisa é só falar… :smiley:

R

Valeu Baiano!!!

Vou testar depois post o feedback.


Já testei!!! Deu certo Mesmo.

T

Uma dica por favor RodrigoSol

Desculpa a ignorancia mas eu estou precisando exatamente deste resultado., que eu entre com a semana e ele me devolva o intervalo das datas pertencentes a semena, mas não consegui imprimir esse resultado como codigo postado a cima, pois não consigui converter GregorianCalendar para java.util.date???..

Grato

G

Prezados, estou em duvida do codigo que foi utilizado para imprimir a relacao de semanas.
Pois no sistema que estou fazendo, o dia em que o usuario entrar no sistema, terei que saber quando começou e terminará a semana, podem me ajudar?
obrigado.

B
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class DateUtil
{
	private static Date resolvePrimeiroUltimo(Date data, boolean isPrimeiro)
	{
		GregorianCalendar calendar = new GregorianCalendar();
		calendar.setTime(data);
		
		if(isPrimeiro)
			calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
		else
			calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
		
		return calendar.getTime();
	}
	
	public static void main(String[] args) 
	{
		Date date = new Date();
		
		Date primeiro = resolvePrimeiroUltimo(date, true);
		Date ultimo = resolvePrimeiroUltimo(date, false);
		
		System.out.println(primeiro+" - "+ultimo);		
	}
}
M

Obrigado pessoal.
Me economizou muito tempo.

W

Fiz esse método combinando as dicas do pessoal acima.

public static Date dataGB;

    //Função que calcula o dia que começou a semana e o dia que terminara.
    public static Date dia_inicial_final_semana(boolean isPrimeiro) {

        //Seta a data atual.
        dataGB = new Date();

        GregorianCalendar calendar = new GregorianCalendar();
        //Define que a semana começa no domingo.
        calendar.setFirstDayOfWeek(Calendar.SUNDAY);
        //Define a data atual.
        calendar.setTime(dataGB);

        if (isPrimeiro) {
            calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        } else {
            calendar.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
        }

        return calendar.getTime();
    }

No meu caso usei esse método para dar um select com between no banco.

Criado 20 de novembro de 2003
Ultima resposta 9 de mar. de 2013
Respostas 7
Participantes 7