Converter para Date e somar

Pessoal é o seguinte…

Tenho 2 valores…

por exemplo: um 01/01/2012 e outro 10…
preciso somar esses valores, ou seja 01/01/2012 somando com 10 irá para 11/01/2012 e não estou conseguindo…

o valor da data o usuario irá em um jFormattedTextField com a máscara ##/##/#### e o número inteiro irá digitar em um JTextField…

como faço para qe a nova data seja atribuida a um novo jFormattedTextField?

desde já gradeço a todos!!!

para soma use JodaTime.

veja como usar aqui: http://www.aeciocosta.com.br/?p=107

mas eu nao sei como fazer a soma do conteudo do jFormattedTextField e do jTextField,
nao estou conseguindo pegar o valor que é digitado neles e converter para Date…

o valor da data está como Date e do numero está com int…

tem como eu somar um Date com um int e ele me retorno o resultado que quero?

Bom dia Marcos.

Para fazer essa soma você pode usar o Calendar.

Ficaria mais ou menos assim

			Calendar cal = GregorianCalendar.getInstance();
			cal.setTime(new Date());
			
			cal.add(Calendar.DATE, 10);

Aí você usa o

                        cal.getTime();

para recuperar a Data.

Valeu

mas ainda nao consegui pegar o valor do JFomartedTextField e jogar em uma variavel como Date… alguem pode me ajudar?

O JFomartedTextField deve te retornar uma String.

A partir dessa String, use um SimpleDateFormat para transformar uma String em Date.

De uma olhada no link: http://www.java2s.com/Tutorial/Java/0040__Data-Type/SimpleDateFormat.htm

Valeu

Então amigo…

você viu esse trecho do link que te mandei?

DateTime hoje = new DateTime(); System.out.println(hoje.getMinuteOfHour()); hoje = hoje.minusMinutes(3); System.out.println(hoje.getMinuteOfHour());

ele diminui 3 minutos de uma dada hora.

pra recuperar valores basta ver os construtores da classe DateTime do Joda.

que podem ser:

DateTime(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour)



ou até mesmo:

DateTime(long instant)

onde esse long pode ser recuperado de SimpleDateFormat instanciado a partir de uma String (Data) com formato, assim:

[code] JFormattedTextField data;

	SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
	
	try {
		Date d = formato.parse(data.getText());
		DateTime data = new DateTime(d.getTime());
	} catch (ParseException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}[/code]

Consegui fazer somar e me dar um resultado… porém o resulta vem dessa forma “Tue Jan 11 00:00:00 BRST 2000”…

é possivel eu transformar isso “Tue Jan 11 00:00:00 BRST 2000” nisso 11/01/2000??

as duas é a mesma data, porém eu preciso desse formato 11/01/2000…

segue o codigo que eu fiz somar o que está sendo digitado no JFormettedTextField com o que foi digitado no JTextField…

haha consegui…

fiz isso daí oh…

String pattern = "dd/MM/yyyy";
        SimpleDateFormat format = new SimpleDateFormat(pattern);
        try {
            Date date = format.parse(jFormattedTextFieldDtEmbarque.getText());
            int prazo = Integer.parseInt(jTextFieldPrazo.getText());
            date.setDate(date.getDate() + prazo);            
            //System.out.println("Date aqui: " + date);
           
            SimpleDateFormat out = new SimpleDateFormat("dd/MM/yyyy");        
             
           String result = out.format(date);           

        } catch (ParseException e) {
            e.printStackTrace();
        }

deixa o código pra quem precisar… está resolvido e certinho!!!

Obrigado a todos qe ajudarao!!!

String pattern = "dd/MM/yyyy"; SimpleDateFormat format = new SimpleDateFormat(pattern); try { Date date = format.parse(jFormattedTextFieldDtEmbarque.getText()); int prazo = Integer.parseInt(jTextFieldPrazo.getText()); date.setDate(date.getDate() + prazo); System.out.println("Date aqui: " + date); } catch (ParseException e) { e.printStackTrace(); }

esse trecho de código é inválido para o que você quer fazer.

date.setDate(date.getDate() + prazo);

pois o setDate é para um número long.

o que vc deve fazer é usar a API JodaTime que tem o tipo DateTime e na instância dessa variável utilizar

DateTime dia; dia= dia.plusMinutes(prazo);

dê uma lida de como colocar a API JodaTime em seu projeto. ela vai facilitar as coisas pra vc. http://www.aeciocosta.com.br/?p=107

Alguém sabe como faço isso com o GWT??

Calendar calendar = Calendar.getInstance();
calendar.setTime(minhaData);

// incrementa minha data mais sete dias
calendar.add(Calendar.DAY_OF_MONTH, 7);