Java tratar datas

12 respostas
M

olá pessoal
agora me surgiu uma nova dúvida
uso a classe nachocalendar para datas
como faço para somar e subtrair datas com essa classe, por exemplo

12/11/2008 + 10 = 22/11/2008
12/11/2008 - 30 = 12/10/2008

obrigado

12 Respostas

Diego_Silveira

A classe Calendar tem métodos para somar datas… da uma olhada…
Tem muitos exemplos aqui no fórum
Essa classe nachocalendar tbm deve ter…

Focao
Calendar calendar = Calendar.getInstance();

calendar.add( Calendar.DAY_OF_MONTH , 5); //adicionar 5 dias do mês
calendar.add( Calendar.HOUR , -2);//diminuir 2 horas
calendar.add( Calendar.YEAR, -18); //diminuir 18 anos

int dia = calendar.get(Calendar.DATE);
int mes = calendar.get(Calendar.MONTH);
int ano = calendar.get(Calendar.YEAR);
M

mas por exemplo
se eu somar 10, 50, 300, 1000 dias
ele tem que atualizar dia, mês e ano, se for o caso
com o calendar acho que não dá certo, pois essa soma não é fixa, é o usuário quem informar a data e o valor a ser somado …

Diego_Silveira

A classe Calendar faz exatamente isso… o método add soma dias e atualiza mês e ano se for o caso… faça um teste como o exemplo do Focão!

marciofermino

Use a classe Calendar
existem todos os métodos necessários

M

ok
entendido
mas como somar esses dias do calendar com minha date ??
pois para pegar o valor do datefield do nachocalendar estou usando

Date data_inicial = (Date) DateField1.getValue();

obrigado

ricardosoares

Date data_inicial = (Date) DateField1.getValue(); Calendar cal = Calendar.getInstance(); cal.add(Calendar.MONTH, 18); Date dataFinal = cal.getTime();

M

e onde que a data que o cara digitou no datefield entra no programa ???

ricardosoares

da mesma forma q vc sugeriu no post anterior ?

M

RESOLVIDO

//function
public Date somaDias(Date data1, int dias1) {
		Calendar cal1 = new GregorianCalendar();
		cal1.setTime(data1);
		cal1.add(Calendar.DAY_OF_MONTH, dias1);
		return cal1.getTime();
}

// chamada
Date data_inicial = (Date) DateField1.getValue();
Date nova1 = somaDias(data_inicial,15);
System.out.println( "data inicial + 15 " + formato1.format(nova1) ) ;

obrigado a todos

M

aproveitando, já que estamos falando em datefield do nachocalendar
coloquei um action listener nesse componente, mas não funciona
por exemplo, quando o focus está no campo e eu tecle F2, ele faz um select no postgres
o select está certo, se eu coloco num textfield funciona normalmente
em qualquer outro componente, textfield, jformatted, funciona
o que pode ser ??
obrigado

M

na function somaDias, para subtrair datas, basta enviar um número negativo

Criado 12 de novembro de 2008
Ultima resposta 14 de nov. de 2008
Respostas 12
Participantes 5