Problema com data anterior

5 respostas
xandevieira

Bom dia,

criei os seguintes metodos:

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

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

Estou passando a data 01/07/2008 e 31/07/2008.
Eles deveriam retornar 01/06/2008 e 30/06/2008.

O 1o retorna certo, mas o 2o retorna 01/07/2008. O que esta errado?

vlw

5 Respostas

J

Tente assim

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

xandevieira

jr.mg:
Tente assim

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

ixi, ele colocou 31/12/2007

pergentino

tu pode fazer o seguinte:

public static Date recuperarUltimoDia(Date novoPeriodo) {
		Calendar cal = GregorianCalendar.getInstance();
		cal.setTime(novoPeriodo);
		cal.add(Calendar.MONTH, 1);
		cal.set(Calendar.DAY_OF_MONTH, 1);
		cal.add(Calendar.DAY_OF_MONTH, -1);
		return cal.getTime();
	}
J

Passe o codigo getDateCalendar para vermos…o erro pode estar nele
Para tirar a duvida, tire ele e faça com a data corrente…

GregorianCalendar gc = GregorianCalendar.getInstance()

xandevieira

Reiniciei tudo, meu jboss, a maquina e agora esta funcionando.

vlw;

Criado 9 de fevereiro de 2009
Ultima resposta 9 de fev. de 2009
Respostas 5
Participantes 3