USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Calculo de juros
João Paulo
ARCOS
MG - BRASIL
ENUNCIADA !
Postada em 05/10/2007 11:26 hs            
Galera pesso a ajuda de vcs. Nem sei como fazer isso.
 
Eu tenho os seguinte Text.
 
txtParcelas 'Quantidade de parcelas
txtVencimento ' o vencimento
txtPagamento ' o dia em q foi pago a parcela
txtMoraMulta ' o valor q foi acrescentado na parcela em caso de pagamento atrasado
txtJuros ' juros que sera cobrado em cada dia de atraso
txtValor ' valor total ja calculado
 
Como faço esses calculos de juros?
Estou trabalhando em um sistemas de contas, tipo aqueles que gera um Carnê para os clientes pagarem na loja certo.
 
   
PH1959
Pontos: 2843
SÃO JOSÉ DOS CAMPOS
SP - BRASIL
Postada em 05/10/2007 11:57 hs            

T= taxa de juros mensal em %;

P= valor da parcela ;

dv= data vencimento ;

dp = data de pagamento

J = valor dos juros sobre o atraso

J= (((dp - dv (em dias)/30) * T/100)*P

     
João Paulo
não registrado
ENUNCIADA !
Postada em 05/10/2007 12:14 hs   
bom acho q essa dica sua vai me ajudar muito.
Agora apareceu outra ainda, olha só estou gerando as parcelas. Só que eu Coloco a seguinte data de Vencimento 30/10/2007 e gero 7 parcelas
 
1 - 30/10/2007
2 - 30/11/2007
3 - 30/12/2007
4 - 30/01/2007
5 - 08/02/1930 'FEVEREIRO TEM 28 DIAS ESSE É MEU PROBLEMA
6 - 30/03/2007
7 - 30/04/2007
 
alguém sabe como resolver isso?
 
Olha meu código
 
 Dim mes As Integer
 Dim ano As Integer
 Dim data As String
 
On Error Resume Next
 
If txtParcelas.Text = "" Then
 MsgBox "O campo PARCELAS esta vazio!", vbInformation
 Exit Sub
End If
If txtValor.Text = "" Then
 MsgBox "O campo VALOR esta vazio!", vbInformation
 Exit Sub
End If
If txtVencimento.Text = "" Then
 MsgBox "O campo VENCIMENTO esta vazio!", vbInformation
 Exit Sub
End If
If cmbPaga.Text = "" Then
 MsgBox "O campo PAGO/A PAGAR esta vazio!", vbInformation
 Exit Sub
End If
 
parc = 1
 
mes = Format(txtVencimento, "mm")
ano = Format(txtVencimento, "yy")
For i = 1 To txtParcelas.Text
    If mes > 12 Then
       mes = 1
       ano = ano + 1
   End If
  dia1 = Format(txtVencimento, "dd")
  dia = Verifica_dia(dia1, mes)
  data = dia & "/" & Format(mes, "00") & "/" & Format(ano, "00")
 
  tbParcelas.AddNew
 
  tbParcelas!Codigo_da_Conta = txtCodigoConta.Text
  tbParcelas!Codigo_Cliente = txtCodigo.Text
  tbParcelas!Nome_Cliente_Empresa = txtNome.Text
  tbParcelas!Vencimento = data
  tbParcelas!Data_Pagamento = txtPagamento.Text
  tbParcelas!Juros = txtJuros.Text
  tbParcelas!MoraMulta = txtMoraMulta.Text
  tbParcelas!VALOR = txtValor.Text
  tbParcelas!Prestacao_Paga = cmbPaga.Text
 
  tbParcelas!Parcelas = parc
  parc = parc + 1
  mes = mes + 1
 
  tbParcelas.Update
 
Next i
 
Public Function Verifica_dia(dia, mes)
Dim diasDoMes As Variant
dia = Val(dia)
diasDoMes = Array(31, 28, 30, 30, 31, 30, 31, 30, 30, 31, 30, 31)
If dia = 31 Then
Verifica_dia = diasDoMes(mes - 1)
Else
Verifica_dia = dia
End If
End Function
   
PH1959
Pontos: 2843
SÃO JOSÉ DOS CAMPOS
SP - BRASIL
ENUNCIADA !
Postada em 05/10/2007 12:18 hs            
por lei... os vencimentos ocorridos em datas inexistentes vão para o dia posterior.
tipo 29/02 em um ano não bissexto vai para 01/03
ou ainda 31/04 vai para 01/05..
a primeira coisa a fazer é verificar se EXISTE a data do vencimento.
Se não existir já lançar a data logo subsequente.
 
 
 
   
João Paulo
ARCOS
MG - BRASIL
ENUNCIADA !
Postada em 05/10/2007 12:24 hs            
pois é mais como faço isso?
   
PH1959
Pontos: 2843
SÃO JOSÉ DOS CAMPOS
SP - BRASIL
ENUNCIADA !
Postada em 05/10/2007 12:50 hs            
faz uma funçãozinha para verificar as datas ..
normalmente eu uso datas como numeros ex 01/03/2007 fica 01032007
daí trabalho com elas...mas vc pode também separar...
 
funverdata(data as string) ' aki entra a sua data normal ex 01/03/2007
 
dia= val(mid$(data, 1,2))
mes= val(mid$(data,4,2))
ano=val(mid$(data,7,4))
 
select case mes
        case 1,3,5,7,8,10,12
                diamax=31
        case 4,6,9,11
                 diamax=30
       case 2
              if (ano mod 4) =0 then ' ano bissexto
                   diamax=29
               else
                   diamax=28
               endif
          end select
if dia>diamax then
     dia=01
      if mes =12 then
          mes=01
          ano=ano+1
      else
     mes= mes+1
     endif
else
   
   data valida
endif
 
 
 
 
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2026   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página