[RESOLVIDO][Duvida] Primeiro e ultimo dia do mês anterior

Estamos fazendo uma rotina batch, e preciso fazer ums string, que quando a rotina for executada, ela busque os dados ja determinados na rotina, ela puxe os mesmos do primeiro ao ultimo dia do mês anterior…
Preciso saber como faço a string, que pegue o primeiro, e ultimo dia do mês anterior ao da data de execução da rotina, alguem tem uma sugestão?

O primeiro dia do mês, obviamente, é sempre 1.
Portanto, precisas apenas do último dia.

[code]Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, -1);

int lastDay = c.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(lastDay);[/code]

Se não era isso ou precisa de mais coisa, tenta explicar com calma, não entendi inteiramente sua necessidade (dúvida).
Abraços.

Então, eu expliquei mau mesmo, mas é como se fosse um programa que gera digamos, um relatorio.
Se eu executar ele hoje 18/01/2012, ele vai me dar todos os dados do dia 01/12/2011 até o dia 31/12/2011.
sempre baseado na data atual, como se eu executasse ele dia 8/03/2012, me daria os dados de 1º a 29 de Fevereiro de 2012…
acho que agora deu ficou melhor né?

o [quote]nel[/quote] ja respondeu sua pergunta.
Segue complemento.

	public static Date getPrimeiroDiaDoMesAnterior(Date date) {
		GregorianCalendar gc = getDateCalendar(date);
		gc.add(Calendar.MONTH, -1);
		gc.set(Calendar.DAY_OF_MONTH, 1);
		return gc.getTime();
	}

	public static Date getUltimoDiaDoMesAnterior(Date date) {
		GregorianCalendar gc = getDateCalendar(date);
		gc.add(Calendar.MONTH, -1);
		gc.set(Calendar.DAY_OF_MONTH, gc.getActualMaximum(Calendar.DAY_OF_MONTH));
		return gc.getTime();
	}

[quote=Marcus-Pereira]Então, eu expliquei mau mesmo, mas é como se fosse um programa que gera digamos, um relatorio.
Se eu executar ele hoje 18/01/2012, ele vai me dar todos os dados do dia 01/12/2011 até o dia 31/12/2011.
sempre baseado na data atual, como se eu executasse ele dia 8/03/2012, me daria os dados de 1º a 29 de Fevereiro de 2012…
acho que agora deu ficou melhor né?[/quote]

Então é só executar o código que lhe passei ou o do avsouza.
É questão de análise e adaptar as tuas necessidades.

Aí vai mais uma sugestão:

[code] Calendar c = Calendar.getInstance();
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(“dd/MM/yyyy”);

	d = c.getTime();
	System.out.println("Data de hoje: " + sdf.format(d));

	c.add(Calendar.MONTH, -1);
	d = c.getTime();
	System.out.println("Data do mes passado: " + sdf.format(d));

	c.set(Calendar.DAY_OF_MONTH, c.getActualMinimum(Calendar.DAY_OF_MONTH));
	d = c.getTime();
	System.out.println("Data do primeiro dia do mes passado: " + sdf.format(d));

	c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
	d = c.getTime();
	System.out.println("Data do ultimo dia do mes passado: " + sdf.format(d));[/code][quote][b]Saída:[/b]

Data de hoje: 18/01/2012
Data do mes passado: 18/12/2011
Data do primeiro dia do mes passado: 01/12/2011
Data do ultimo dia do mes passado: 31/12/2011[/quote]

Abraço!

1 curtida

Queria agradecer a vocês, Fiz as Adaptações já, ta tudo certinho… Muito obrigado mesmo, nel, avsouza e vingdel. muito obrigado pela ajuda, Vlw mesmo.