Estou criando um programa que calcula pena de presidiário, em java, no NetBeans, com bd Postgresql, modelo MVC. E preciso realizar muitos cálculos com datas. Estou pesquisando a uma semana e não consegui achar uma resposta que me ajude a solucionar o meu problema.
Tenho as seguintes linhas de comandos:
No Modelo, criei a variável como Date;
No Controle, tenho as seguintes linhas de comando, onde existem duas datas para as quais usei o date do java.sql:
public void inserirInterrupcao(ModeloInterrupcao mod){ conex.conexao(); try { PreparedStatement pst = conex.conn.prepareStatement(“insert into interrupcoes (matricula,apenado,data_inicial, data_final, motivo,id_condenacao) values(?,?,?,?,?,?)”); pst.setInt(1, mod.getMatricula()); pst.setString(2,mod.getApenado()); pst.setDate(3,mod.getDataInicial()); pst.setDate(4,mod.getDataFinal()); pst.setString(5,mod.getMotivo()); pst.setInt(6,mod.getIdInterrupcao()); pst.execute(); Na Visão(JFrame), no botão Salvar, tenho as seguintes linhas de comando, onde estou com problema, pois nas duas linhas onde estão as datas dá o erro que “<em>String não pode ser convertida para data</em>”: mod.setMatricula(Integer.parseInt(jTextFieldMatricula.getText())); mod.setApenado(jTextFieldApenado.getText()); mod.setDataInicial(jFormattedTextFieldData_Inicial.getText()); mod.setDataFinal(jFormattedTextFieldData_Final.getText()); mod.setMotivo((String) jComboBoxMotivo.getSelectedItem()); mod.setIdInterrupcao(Integer.parseInt(jTextFieldId.getText())); Já tentei converter, usando o “DateFormat dateFormat = new SimpleDateFormat(“dd/MM/yyyy”);”, mas nada acontece. Se uso o “mod.setDataInicial(Date.valueOf(jFormattedTextFieldData_Inicial.getText()));” desaparece o erro da conversão, mas aparece outro, quando vou salvar, dizendo que “Exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException / at java.sql.Date.valueOf(Date.java:143)”. Pelo que entendi o valueOf não pode ser usado ali. Nos cursos e apostilas que tenho as datas são tratadas como string, mas isso me impede de usá-las para calcular. E preciso muito disso. O que fazer? Há como resolver a conversão, sem provocar o segundo erro? Desculpe-me, se infringi alguma regra do Foro. É a primeira vez que peço ajuda.