Comando para gerar parcelas

3 respostas
J

Estou fazendo 1 programa para poder contrar os seus gastos mensais.
Neste programa terá uma tabela contendo as tabelas que devem ser geradas automaticas quando o cliente digitar o numero de parcelas a ser agendado, como devo fazer alguém sabe me dizer?

agendamento.setQuantidade_parcelas(Integer.parseInt(textFieldParcelas.getText()));

//Comando para gerar as parcelas.

int x = Integer.parseInt(textFieldParcelas.getText());

for (int i = x; i<=x; i++){

}

3 Respostas

S
jonathatc:
Estou fazendo 1 programa para poder contrar os seus gastos mensais. Neste programa terá uma tabela contendo as tabelas que devem ser geradas automaticas quando o cliente digitar o numero de parcelas a ser agendado, como devo fazer alguém sabe me dizer?

agendamento.setQuantidade_parcelas(Integer.parseInt(textFieldParcelas.getText()));
//Comando para gerar as parcelas.
int x = Integer.parseInt(textFieldParcelas.getText());
for (int i = x; i<=x; i++){

}

Divida de forma inteira o valor pelo numero de parcelas em forma de centavos. Adicione o resto na primeira parcela. Use BigDecimal ou BigInteger
Exemplo

public BigInteger[] parcelar ( BigInteger centavos , int numeroParcelas){

BigInteger[] valores= centavos.divideAndRemainder(numeroParcelas);
// valores[0] é o quociente e valores[1] é o resto

// cria parcelas
BigInteger[] parcelas = new BigInteger[numeroParcelas];
// preenche array com o mesmo valor da parcela
Arrays.fill(parcelas, valores[0]);

//adiciona o resto na primeira
parcelas[0] = parcelas[0].add(valores[1]);

return parcelas;

}

uso

BigInteger[] parcelas = parcelar( new BigInteger(100000), 3); // 100000 centavos => 1000.00
A

Bom dia amigo, estou precisando de uma forcinha para realizar um o precedimento de calcular parcelas, navegando no fórum encontrei uma participação sua o link esta logo abaixo
http://www.guj.com.br/java/105057-comando-para-gerar-parcelas
Esse é meu código q estou usando para efetuar o calculo ate esta funcionando o problema é q devido alguns valores possuir resto sempre fica com uma divergência na parcela como eu poderia resolver esse problema, o valor q vem do txt_vlr_crediario.getText() já dividido

case "NOTA A PRAZO":
                        double vlr_crediario = Ulti.formatarValor(txt_vlr_crediario.getText());
                        int mes = 0;
                        int num = (int) js_parc_crediario.getValue();
                        int inter = (int) js_intervalor_crediario.getValue();
                        Calendar dt = new GregorianCalendar();
                        dt.setTime(data_venda);

                        if (vlr_crediario <= 0) {
                            Msg.mensagemAvisa(this, "valor de pagamento inválido!");
                            txt_vlr_crediario.requestFocusInWindow();
                        } else {
                            while (mes < num) {
                                dt.add(GregorianCalendar.DATE, +inter);
                                TipoPgtoModel cred = new TipoPgtoModel();
                                cred.setId_pessoa(Integer.parseInt(txt_id_cliente.getText()));
                                cred.setId_venda_cab(num_vemda);
                                cred.setFlag("V");
                                cred.setEmissao(data_venda);
                                cred.setVlr_total(subTotal);
                                cred.setVlr_des_acr(desconto);
                                cred.setVlr_apagar(vlr_crediario);
                                cred.setVencto(dt.getTime());
                                cred.setN_parcela(String.valueOf("1" + "/" + (mes + 1)));
                                cred.setVlr_parcela(vlr_crediario);
                                cred.setTipo_pgto(2);
                                cred.setForma_pgto(comboFormaPgto.getSelectedItem().toString());
                                cred.setId_usuario(id_func);
                                cred.setId_info_caixa(id_info_caixa);
                                //para exibição da tabela forma pgto
                                cred.setVlr(txt_vlr_crediario.getText());
                                cred.setData_venc(new SimpleDateFormat("dd/MM/yyyy").format(dt.getTime()));

                                listaFormaPgto.add(cred);
                                preencherTabelaFormaPgto();
                                ++mes;
//                                system_out_print(cred);
                            }

                            txt_vlr_crediario.setText(Ulti.dF.format(-restante()));

                        }
                        break;
S

adsadilson:
Bom dia amigo, estou precisando de uma forcinha para realizar um o precedimento de calcular parcelas, navegando no fórum encontrei uma participação sua o link esta logo abaixo

Esse é meu código q estou usando para efetuar o calculo ate esta funcionando o problema é q devido alguns valores possuir resto sempre fica com uma divergência na parcela como eu poderia resolver esse problema, o valor q vem do txt_vlr_crediario.getText() já dividido ]

Suponha que tem 5 para dividir por 3. Você tem que dividir primeiro equatativamente. fica

1 1 1

depois o que sobra

1 1

e somar. fica

2 2 1

Repare que como vc lida com o resto é uma regra de negocio. Normalmente o que sobre é colocado na primeira ou na ultima parcela então 5 distribuído por 3 fica

3 , 1 , 1

ou

1, 1 , 3

Leia isto sobre o padrão money para entender melhor como funciona e como encapsular essas operações num objeto

Criado 2 de outubro de 2008
Ultima resposta 1 de nov. de 2013
Respostas 3
Participantes 3