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++){
}
[quote=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++){
}[/quote]
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
[code]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;
}[/code]
uso
BigInteger[] parcelas = parcelar( new BigInteger(100000), 3); // 100000 centavos => 1000.00
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
[code]
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;[/code]
[quote=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 ][/quote]
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