Pegar a data atual e dimuir 5 dias

11 respostas
F

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

11 Respostas

C
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:

F

Ah desculpa nao te falado estou usando jsp

C

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 {
	
	}
%>
F

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?

L

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

S

ja tentou fazer um parse…??

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");

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

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

C

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

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);
F
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!

D

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é.

P

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.

Criado 10 de outubro de 2007
Ultima resposta 11 de out. de 2007
Respostas 11
Participantes 7