Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Quati Maldito

Calculo de juros

Recommended Posts

Olá!Pessoal, me ajudem por favor..Preciso criar um rotina para calcular juros de uma conta vencida, de acordo com as seguintes regras: - 10% após o vencimento - 1% ao dia, depois do primeiro mês vencido.EX.: Uma conta vencida em 29/05/2007, hoje(30/05/2007) já tem 10% de juros. Uma conta vencida em 29/04/2007, hoje(30/05/2007) já tem 11% de juros no total, 10% referente ao primero mês de atraso e mais 1% de juros referente ao dia 30/05/2007.Preciso criar essa rotina, já quebrei a cabeça e ainda naum consegui muita coisa..Referente ao primeiro caso, para verificar se já está vencido para acrescentar o juro de 10%, tentei o seguinte :

dias_atraso = DateDiff("d",vencimento,date)if Cint(dias_atraso) > 0 then	juros = juros + 10end if'*** para este trecho tentei tb :hj = Dateif Cdate(hj) > CDate(vencimento)  then	juros = juros + 10end if

Não sei pq diabos..., mas nenhum dos dois "ifs" dos modos que tentei funcionou como eu esperava..No if que compara as datas, a variavel "vencimento" vem do BD, access, data no formato dd/mm/aaaa, data abreviada, mas tb naum rola..Na outra parte, onde tenho que calcular os dias de atraso, depois do primeiro mês vencido, ainda naum consegui pensar em um meio de fazê-lo..Pesssoal, conto com vocês, preciso resolver isso para ontem, muito obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A princípio os IFs aparentam estar corretos. Dê um response.Write nas variáveis em uso e verifique se estão com os valores de forma correta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara....não entendi muito bem a lógica disso, mas ai vai algo que pode te dar uma luz

<%Session.LCID = 1046vencimento = "30/04/2007"valor_a_pagar = 100.30dias_atraso = DateDiff("d",vencimento,date)if Cint(dias_atraso) > 0 then  juros = 10 if dias_atraso > 30 then  total_pagar = (((((dias_atraso - 30)+juros) * valor_a_pagar)/100) + valor_a_pagar) else  total_pagar = (((juros * valor_a_pagar)/100) + valor_a_pagar) end ifelse  total_pagar = valor_a_pagarend ifResponse.Write(total_pagar)%>
veja que no primeiro IF eu armazeno numa variavel os juros = 10 e não juros = juros +10

dentro desse bloco IF verifico se os dias de atraso é superior a 30 dias, se for então vê a diferença de dias de atraso - 30(dias/mês). Em seguida fazemos o ELSE para ver se acrescenta os Juros(10) ou não...se não tiver dias de atraso maior que 0 então o valor total será igual ao valor a pagar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

Obrigado pela ajuda, mais uma vez consegui resolver o problema com a ajuda de todos.

 

jonathandj, peguei seu código, só acrescentei um if para determinar se o mês tem 30 ou 31 dias

 

Segue abaixo para alguém que precisar.

 

 

vencimento = "30/04/2007"valor_a_pagar = 100.30dias_atraso = DateDiff("d",vencimento,date)if Cint(dias_atraso) > 0 then 	 juros = 10	 'pega  o mes atual	 m_a = month(vencimento)									 if (m_a = 1 OR m_a = 3 OR m_a = 5 OR m_a = 7 OR m_a = 8 OR m_a = 10 OR m_a = 12) then 	qtde_dias_mes = 31 	 else 	qtde_dias_mes = 30 	end if									if (dias_atraso > qtde_dias_mes) then	  total_pagar = (((((dias_atraso - qtde_dias_mes)+juros) * valor_a_pagar)/100) + valor_a_pagar)	else	  total_pagar = (((juros * valor_a_pagar)/100) + valor_a_pagar)	end ifelse 	total_pagar = valor_a_pagarend ifresponse.write month(total_pagar)

Mais uma vez obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.