Calcular Data (Resolvido)

11 respostas
viniciusgundim

Gostaria de saber como faço o calculo de uma data que está dentro de um Jtextfield, que o usuário irá inserir, ex:

O usuário insere a data 30/04/2010, ai soma +1 por exemplo vai para 01/05/2010

T+

11 Respostas

guisantogui

Malditas datas do JAVA, naum conheço outro metodo, vai na gambiarra metendo if’s q funciona, mas eh muita gambiarra mesmo! :?

UMC

use o split(); para localizar as barras
Ex: 22/22/2222

datasoma []= data.split("\/"); datasoma[0] +1 dia atasoma[1] mes atasoma[2]ano
depois é só juntar!
+/- isso

Gambiarra pura!rsrsrs
vlw

B
guisantogui:
Malditas datas do JAVA, naum conheço outro metodo, vai na gambiarra metendo if's q funciona, mas eh muita gambiarra mesmo! :?

Não se desepere.. o Java 7 tá vindo ai para resolver seus porblemas ;) mas se vc não consegue esperar pode ir dando uma olhada no JodaTime: http://joda-time.sourceforge.net/ que digamos, é a inspiração para esta solução no Java 7.

Mas voltanto a a resposta, vc pode converter a data para Date e usar o Calendar, +/- assim:
JTextField field ...
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date dateUser = df.parser(field.getText());

Calendar c = Calendar.getInstance();
c.setTIme(dateUser);
c.add(Calendar.DAY_OF_YEAR, 1);
field.setText(df.format(c.getTime());
...

// sem gambi ;)
viniciusgundim

Bruno, valeu ai kra, mais está dando erro na ultima linha, segue o código:

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");  
 Date dateUser = df.parse(jTextField1.getText());  
   
 Calendar c = Calendar.getInstance();  
 c.setTime(dateUser);  
 c.add(Calendar.DAY_OF_YEAR, 1);  
 jTextField2.setText(df.format(c.getTime());

O que pode estar errado???

Abraçoo

B
viniciusgundim:
Bruno, valeu ai kra, mais está dando erro na ultima linha, segue o código:
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");  
 Date dateUser = df.parse(jTextField1.getText());  
   
 Calendar c = Calendar.getInstance();  
 c.setTime(dateUser);  
 c.add(Calendar.DAY_OF_YEAR, 1);  
 jTextField2.setText(df.format(c.getTime());

O que pode estar errado???

Abraçoo

Pode ser que stá faltando um ')'...
jTextField2.setText(df.format(c.getTime()));

Ps.: interprete as msg de erro do compilardor.... elas costumam ser claras...

viniciusgundim

Era mesmo mais agora deu erro em outra linha:

Date dateUser = df.parse(jTextField1.getText());

Valeu pela atenção, espero que me ajude.

T++, abraço

B

viniciusgundim:
Era mesmo mais agora deu erro em outra linha:

Date dateUser = df.parse(jTextField1.getText());

Valeu pela atenção, espero que me ajude.

T++, abraço

Entçao… este metodo “parse” pode lançar exception… trate-a ou lance-a… eis a questão…

viniciusgundim

Coloquei um Try, não deu erro mais quando chamo o metodo para somar a data dá o seguinte erro no console do IDE:

at java.text.DateFormat.parse(DateFormat.java:337) at calendario_2.calendario(calendario_2.java:108) at calendario_2.jButton1ActionPerformed(calendario_2.java:83) at calendario_2.access$000(calendario_2.java:21) at calendario_2$1.actionPerformed(calendario_2.java:47) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6134) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5899) at java.awt.Container.processEvent(Container.java:2023) at java.awt.Component.dispatchEventImpl(Component.java:4501) at java.awt.Container.dispatchEventImpl(Container.java:2081) at java.awt.Component.dispatchEvent(Component.java:4331) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895) at java.awt.Container.dispatchEventImpl(Container.java:2067) at java.awt.Window.dispatchEventImpl(Window.java:2458) at java.awt.Component.dispatchEvent(Component.java:4331) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

O que tá errado??

viniciusgundim

A segue tb o código do metodo, pode auxiliar tb, segue:

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");  
 Date dateUser;  
   
 Calendar c = Calendar.getInstance();  
        try {
            dateUser = df.parse(jTextField1.getText());
             c.setTime(dateUser);  
             c.add(Calendar.DAY_OF_YEAR, 1);
             jTextField2.setText(df.format(c.getTime())); 
        } catch (ParseException ex) {
            Logger.getLogger(calendario_2.class.getName()).log(Level.SEVERE, null, ex);
        }

     }

T+++, Obrigado pela atenção

viniciusgundim

Deu certo agora, era um erro bobo meu kra…

Muitoo Obrigado Brunoo…

T+, Obrigado kra…

t++

B

viniciusgundim:
Deu certo agora, era um erro bobo meu kra…

Muitoo Obrigado Brunoo…

T+, Obrigado kra…

t++

Que bom que conseguiu cara, legal mesmo, foi mal a ausencia… quando comecei a responder tive que sair … vlw.;

Criado 30 de abril de 2010
Ultima resposta 3 de mai. de 2010
Respostas 11
Participantes 4