Incrementar data ao inserir

e ai pessoal estou querendo fazer um sistema de vendas que quando
o vendedor for fazer uma venda que pegue a data atual e as parcelas
e insere no banco a data atual e incremente as as parcelas
acho que deu para entender
segue um trecho de código que achei aqui para incrementar mas como por ele para adicionar no banco de dados

public static void main(String[] args) {
        GregorianCalendar gc = new GregorianCalendar();
        int numPar = Integer.parseInt(JOptionPane.showInputDialog("Quantidade de parcelas"));
        Date diaAtual = new Date();
        for (int e = 0; e < numPar; e++) {
            gc.setTime(diaAtual);
            gc.roll(GregorianCalendar.MONTH, e);
            DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
            Date d = gc.getTime();
            if (d.equals(diaAtual)) {
                System.out.print("Entrada ");
            } else {
                System.out.print("Parcela " + e + ": ");
            }
            System.out.println(df.format(d));
        }
    }

se entendi bem vc quer algo assim:

GregorianCalendar gc = new GregorianCalendar(); System.out.println(gc.getTime()); int parcelas = 5; for (int i = 0; i &lt; parcelas; i++) { gc.set(GregorianCalendar.DAY_OF_MONTH, gc.get(GregorianCalendar.DAY_OF_MONTH) + 30); System.out.println(gc.getTime()); }

Isso ai mas como fazer ele inserir no banco de dados
tipo assim tenho esse metódo para inserir no banco agora como inserir as datas incrementando


public boolean inserir(Gastos objeto) {
        objeto.setCodigo(obtemproximocodigo());
        String sql = "INSERT INTO gastos (descricao, data, valor, ie_fazenda, cod_tipo_gastos, animal, parcelas, data_primeiro_vencimento, codigo) VALUES (?,?,?,?,?,?,?,?,?)";
        try {
            PreparedStatement ps = Conexao.getConexao().prepareStatement(sql);
            ps.setString(1, objeto.getDescricao());
            ps.setDate(2, ConverteData.formataData(objeto.getData()));
            ps.setDouble(3, objeto.getValor());
            ps.setLong(4, objeto.getFazenda().getIe());
            ps.setInt(5, objeto.getTipo_gastos().getCodigo());

            if (objeto.getAnimal() == null) {
                ps.setNull(6, Types.INTEGER);
            } else {
                ps.setInt(6, objeto.getAnimal().getNumero());
            }
            ps.setInt(7, objeto.getParcelas());
            ps.setDate(8, ConverteData.formataData(objeto.getData_primeiro_vencimento()));
            ps.setInt(9,objeto.getCodigo());
            ps.execute();

            for (int i = 0; i < objeto.getParcelas(); i++) {
                Parcelas par = new Parcelas();
                par.setNumero(i+1);
                par.setData_ven(objeto.getData_primeiro_vencimento());
                par.setValor(objeto.getValor() / objeto.getParcelas());
                par.setCodigo(objeto);

               

                ControleModeloParcelas cmp = new ControleModeloParcelas();
                cmp.inserir(par);

            } 
            return true;

        } catch (Exception ex) {
            System.out.println(ex.getMessage());

            return false;
        }
    }

ele funciona inserindo as parcelas tipo se colocar 3 parcelas ele insere 3 datas iguais
eu queri que ele incrementasse a data
deu para entender?

o que eu fiz pra vc eh exatamente isso ele incrementa a data a cada 30 dias, basta vc adicionar o codigo no local onde voce passa a data para o banco de dados.

como ficaria então?

depois do guj ta facil programar em java. :?

[code]
public boolean inserir(Gastos objeto) {
objeto.setCodigo(obtemproximocodigo());
String sql = “INSERT INTO gastos (descricao, data, valor, ie_fazenda, cod_tipo_gastos, animal, parcelas, data_primeiro_vencimento, codigo) VALUES (?,?,?,?,?,?,?,?,?)”;
try {
PreparedStatement ps = Conexao.getConexao().prepareStatement(sql);
ps.setString(1, objeto.getDescricao());
ps.setDate(2, ConverteData.formataData(objeto.getData()));
ps.setDouble(3, objeto.getValor());
ps.setLong(4, objeto.getFazenda().getIe());
ps.setInt(5, objeto.getTipo_gastos().getCodigo());

        if (objeto.getAnimal() == null) {
            ps.setNull(6, Types.INTEGER);
        } else {
            ps.setInt(6, objeto.getAnimal().getNumero());
        }
        ps.setInt(7, objeto.getParcelas());
        ps.setDate(8, ConverteData.formataData(objeto.getData_primeiro_vencimento()));
        ps.setInt(9,objeto.getCodigo());
        ps.execute();

        // cria o objeto calendar
        GregorianCalendar gc = new GregorianCalendar();
        // adiciona a data inicial
        gc.setTime(objeto.getData_primeiro_vencimento());
        for (int i = 0; i < objeto.getParcelas(); i++) {
            Parcelas par = new Parcelas();
            par.setNumero(i+1);
            // adiciona a data
            par.setData_ven(gc.getTime());
         // incrementa 30 dias
            gc.set(GregorianCalendar.DAY_OF_MONTH, gc.get(GregorianCalendar.DAY_OF_MONTH) + 30);
            par.setValor(objeto.getValor() / objeto.getParcelas());
            par.setCodigo(objeto);

           

            ControleModeloParcelas cmp = new ControleModeloParcelas();
            cmp.inserir(par);

        } 
        return true;

    } catch (Exception ex) {
        System.out.println(ex.getMessage());

        return false;
    }
}[/code]

meu valeu mesmo funcionou
mas estranho é que ele não aumenta o ano
tipo quando eu coloco a data de hoje
ele incrementa os meses mas o ano continua o mesmo
pelo menos está quase funcionando só falta o ano

                gc.add(GregorianCalendar.DAY_OF_MONTH, 30);              

Já agora, tu queres mesmo adicionar 30 dias, ou queres adicionar um mês? Nesse caso seria:

                gc.add(GregorianCalendar.MONTH, 1);              
                gc.add(GregorianCalendar.DAY_OF_MONTH, 30);              

Já agora, tu queres mesmo adicionar 30 dias, ou queres adicionar um mês? Nesse caso seria:

                gc.add(GregorianCalendar.MONTH, 1);              

bom saber do add. :smiley:

“morrendo e aprendendo!”

Olá pessoal, esse código me auxiliou bastante, mas como sou iniciante em programação, não sei como fazer para um jtextfield receber o numero de parcelas q eu digitar em:

int numPar = Integer.parseInt(JOptionPane.showInputDialog("Quantidade de parcelas"));

fiz o mais óbvio: tf_qtdparc = numPar; mas diz q os tipos são incompatíveis… lógico, só não sei como resolver!
E tbm, tenho um jtextfield contendo o valor total da compra, e gostaria q ele no final dependendo da quantidade de parcelas digistadas recebesse o calculo:
tf_valorparc.setText(String.valueOf(Double.parseDouble(tf_qtdparc.getText()) Double.parseDouble(tf_somatotalparc.getText())));
Me ajudem por favor! Segue o código todo:

GregorianCalendar gc = new GregorianCalendar(); int numPar = Integer.parseInt(JOptionPane.showInputDialog("Quantidade de parcelas")); //tf_qtdparc = numPar; Date diaAtual = new Date(); for (int e = 0; e < numPar; e++) { gc.setTime(diaAtual); gc.roll(GregorianCalendar.MONTH, e); // gc.add(GregorianCalendar.MONTH, 1); DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); Date d = gc.getTime(); if(d.equals(diaAtual)){ System.out.print("Entrada "); }else{ System.out.print("Parcela " + e + ": "); } System.out.println(df.format(d)); } /*tf_valorparc.setText(String.valueOf(Double.parseDouble(tf_qtdparc.getText()) / Double.parseDouble(tf_somatotalparc.getText())));*/ }
Obs:Como posso mostrar mais de uma data de vencimento em um jtable?