sexta-feira, 27 de março de 2009

Lógica de Parcela


Olá pessoal, estou aqui para apresentar uma lógica de parcelas, depois de procurar muito por uma luz na internet e não encontrar, e ter algumas dificuldades em fazer, coloco aqui a lógica para compartilhar. Primeiro quando você pensar em fazer compras, você pensa logo se pode comprar à vista, se não puder comprar à vista procurar as melhores facilidades para efetuar a mesma.
E quando você controla suas finanças com um software para sempre ter em mente o que comprou, o que precisa pagar e quanto foi o preço, melhor ainda com isso você tem mais controle. Para iniciar a lógica pensamos logo que o ano é constituído de 12 meses, logo mês tem que ser >(maior) que 0 e <=(menor) a 12, começamos o primeiro passo. Segundo passo e qual ferramenta de loop eu fiz do seguinte modo:
1. Temos que saber quantas parcelas foi dividida a compra;
2. Temos que saber dia, mês e ano.
Com isso vamos a lógica, Se parcela for maior igual a 1 então vamos fazer outro loop. Antes você pode está se perguntando por que maior IGUAL a 1, às vezes tem aquela compra que você paga uma parte à vista e outra deixa para o mês seguinte, por isso essa lógica. Vamos continuar agora você pode usar um se, mas mas aconselho agora a usar um “para”, caso numero de parcela é maior igual a 1, colocamos o i=1; i < numero de parcela; i++, ou seja, por exemplo temos uma compra de R$ 500,00 reias, eu quero dividir em 5 parcelas,na data 15/03/08, então com esse “para” vai acontecer o seguinte.
I=1 = 15/03/08 Parcela = 100 ok?
Depois eu falo a continuação, por que? Porque falta o resto da lógica para ir para o outro mês, colocamos MÊS+=1;. Temos que verificar os bugs e erros, como eu falei anteiriormente o ano é constituido de 12 mêses, logo se mês == 13, mês = 1 e ano+=1; agora quem vira é o ano e o mês volta para 1; Entendeu?
Agora sim a lógica completa.
this.Parcelas = Valor/NumeroParcela;
if(NParcela >= 1)
{
for(int i =1; i < NParcela; i++)
{
Mes += 1;
if(Mes == 13 )
{
Mes = 1;
Ano += 1;
}
}
}
Agora posso falar o que acontece com aquele exemplo.
I = 1 = 15/03/08 Parcela = 100, quando passa de novo no loop ele vai ficar:
I = 2 = 15/04/08 Parcela = 100;
I = 3 = 15/05/08 Parcela = 100;
I = 4 = 15/06/08 Parcela = 100;e
I = 5 = 15/07/08 Parcela = 100.
Total = 500.
Ok?
Sugestões deixa um cometário, é sempre bem vindo.
ALJUG – AJUDAR É O NOSSO OBJETIVO.
PDF disponível em https://aljug.dev.java.net/servlets/ProjectDocumentList?folderID=9973&expandFolder=9973&folderID=0