Pegar a data atual e dimuir 5 dias

boa tarde pessoal
tenho que pegar a data a tual e tirar cinco dias para fazer uma comparacao
alguem pode me ajudar


private static Date removeDias(Date date, Integer dias) {
        GregorianCalendar gc = new GregorianCalendar();
        gc.setTime(date);
        gc.set(Calendar.DATE, gc.get(Calendar.DATE) - dias);
        return gc.getTime();
}

date: Data que vai remover os dias
dias: Quantidade de dias a remover

:wink:

Ah desculpa nao te falado estou usando jsp

Tenta usar a mesma logica dentro do JSP:

<%
        Integer dias = 5;
        Date data = new Date();
        // Aqui voce atribui o valor da data a comparar
        Date dataComparar = null;
        
        GregorianCalendar gc = new GregorianCalendar();   
        gc.setTime(data);   
        gc.set(Calendar.DATE, gc.get(Calendar.DATE) - dias);   
		data = gc.getTime();		
%>

Dai voce compara depois:

<%
	if (data.after(dataComparar)) {
	
	} else {
	
	}
%>

O problema é que a data que esta vindo do meu banco de dados esta em string, como que eu faço para pegar essa data que tu me passou menos 5 dias e depois compara-la como a data que tenho armazenada em String?

tem um construtor da GregorianCalendar que vc pode usar passando sua string…

GregorianCalendar(int year, int month, int date)

faz uma navegacao em substring para separar o ano mes e dia…

abraço

ja tentou fazer um parse…??


SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");

try {
			Date data = dateFormat.parse("10102007");
		} catch (ParseException e) {
			
			e.printStackTrace();

		}

SimpleDateFormat format = new SimpleDateFormat("data que vem do banco de dados");  
format.setLenient(false);  
try {  
   data = format.parse(dataTexto);  
} catch (ParseException ex) {  
  ex.printStackTrace();  
}  

Pelo amor de Deus não use scriptlet em suas páginas JSP

[quote=LedRenan]tem um construtor da GregorianCalendar que vc pode usar passando sua string…

GregorianCalendar(int year, int month, int date)

faz uma navegacao em substring para separar o ano mes e dia…

abraço[/quote]

Eh isso aew! nao esquece que o mes tem que ter um -1…
Exemplo para “DD/MM/YYYY”

	int dia = Integer.parseInt(data.substring(0,2));
	int mes = Integer.parseInt(data.substring(3,5));
	int ano = Integer.parseInt(data.substring(6,10));	
	GregorianCalendar gc = new GregorianCalendar(ano, mes - 1, dia);
int dias = 5;  
Date data_comparar = new Date();  
Date dataComparar = null;             
GregorianCalendar gc = new GregorianCalendar();     
gc.setTime(data_comparar);     
gc.set(Calendar.DATE, gc.get(Calendar.DATE) - dias);     
data_comparar = gc.getTime(); 
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); 
String DATA_ANTERIOR = format.format(data_comparar);

cONSEGUI DE UM MODO MAIS FACIL!!!

VALEU PELA AJUDA GALERA!

Só para complementar as respostas, a interface Calendar possúi um método chamado “add” que faz exatamente a adição em algum campo da data. No seu caso por exemplo, poderia ser feito assim.

Calendar c = new GregorianCalendar();
c.add(Calendar.DAY_OF_MONTH, -5);

Este método serve para qualquer parte da data. Você pode adicionar ou subtrair dias, meses, anos, horas, etc…

Basta alterar o primeiro parâmetro! =]

Espero ter ajudado. Até.

Em breve esses problemas com data estarão resolvidos, quem assistiu a palestra do Mister M no Just Java viu o poder da futura api de Datas, parece que sai junto com o Java 7.