|
![]() |
![]() |
Neste artigo eu vou apresentar um programa bem simples feito na linguagem VB .NET que realiza cálculos para simulação financeira de empréstimos montando uma agenda de amortização. |
![]() |
Você sabia que os tipos de dados básicos não fazem mais parte da linguagem Visual Basic (ou C#) ?
Eles agora são parte da CLR - Common Language Runtime, que é um componente básico do Visual Studio (na verdade, é o núcleo do Visual Studio e é compartilhado por todas as linguagens que podem ser usadas no Visual Studio).
Todos os tipos de dados expõe um método ToString, que retorna o valor da variável (um número ou data) como uma string (cadeia de caracteres) de modo que ele pode ser usado com outras strings no seu código. O método ToString formata números e datas de muitas maneiras, e, é provavelmente um dos métodos mais usados no dia a dia.
Você pode usar o formato padrão de strings para as opções de formatação mais comuns ou usar a máscara de formatação string para especificar uma formatação menos comum.
Para formatar o valor de 9959,95 como um valor em reais, você pode usar o especificador de formato C, que significa Currency(Moeda). Ex:
Dim
valor As Single = 9959.95
Dim strValor As String
strValor = valor.ToString("C")
Ou pode usar a máscara string para formatação numérica:
strValor = valor.ToString("R$ #,###.00")
Ambas as declarações irão formatar o valor para R$ 9.959,95. (pois minha localização é Brazil)
O método String.Format
Este método converte o valor de objetos em cadeias de caracteres com base nos formatos especificados e os insere em outra cadeia de caracteres.
Use String.Format
se você precisar inserir o valor de um objeto, variável ou expressão na outra
cadeia de caracteres.
Dim precoPorKilo As Decimal = 17.36d
Dim s As String = String.Format("O preço atual é {0:C2} por kilo.", precoPorKilo )
' Resultado se a cultura atual for pt-br: O preço atual é R$17,36 por kilo.
|
Os pontos de inserção em colchetes são
substituídos pelos valores reais pela função.
Na linha de cima, {0} é um ponto de inserção, que é substituído com o
segundo objeto passado para a função (neste exemplo, este objeto é
precoPorKilo).
Observe que após o ponto de inserção temos uma vírgula e então uma opção que controla como a string será exibida. {0:C2}
A opção C2 converte o número para o formato currency com duas casas decimais considerando a localização do usuário.
Além de formatação, você também pode controlar o alinhamento e o espaçamento. Abaixo os principais caracteres de formatação usados:
Caractere de Formatação |
Descrição |
C ou c | Moeda |
D ou d | Decimal |
E ou e | Scientific Format |
F ou f | Fixed-point format |
G ou g | General Format |
N ou n | Number Format |
P ou p | Percentage |
R ou r | Round-trip |
X ou x | Hexadecimal format |
Para objetos data e hora os formatos mais usados são:
Caractere de Formatação |
Descrição |
D | Exibe a data e/ou a hora no formato longo |
d | Exibe a data e/ou a hora no formato curto |
T | Exibe a hora no formato longo |
t | Exibe a hora no formato curto |
G | Exibe a data e/ou hora |
g | Exibe a data/hora no formato curto |
M ou m | Exibe o mês e o dia da data |
Y ou y | Formata a data como ano e mês |
Vejamos a seguir um exemplo prático onde iremos aplicar esses conceitos.
Recursos usados:
Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.
Criando o projeto no VS Community
Abra o VS Community 2015 e clique em New Project;
Selecione a linguagem Visual Basic e o template Windows Forms Application;
Informe o nome Agenda_Amortizacao e clique no botão OK;
Altere o nome do formulário form1.vb para frmAgendaAmortizacao.vb.
A partir da ToolBox inclua no formulário os seguintes controles:
14 Labels
3 TextBox
1 Button - btnCalcular
1 Listbox
1 MenuStrip
3 ErrorProvider
Disponha os controles no formulário conforme a figura abaixo:
No menu Project clique em Add Windows Forms;
Selecione a opção About Box e aceite o nome padrão : AboutBox1.vb
Vamos definir o seguinte leiaute para o formulário AboutBox1.vb :
O código gerado para este formulário é visto a seguir:
Public NotInheritable Class AboutBox1
Private Sub AboutBox1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Define o titulo do formulário
Dim ApplicationTitle As String
If My.Application.Info.Title <> "" Then
ApplicationTitle = My.Application.Info.Title
Else
ApplicationTitle = System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyName)
End If
Me.Text = String.Format("Sobre {0}", ApplicationTitle)
Me.LabelProductName.Text = My.Application.Info.ProductName
Me.LabelCopyright.Text = My.Application.Info.Copyright
End Sub
Private Sub OKButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OKButton.Click
Me.Close()
End Sub
End Class
|
No menu Sobre inclua o código abaixo para exibir o formulário AboutBox1:
Private Sub AboutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem.Click
AboutBox1.ShowDialog()
End Sub |
Agora vamos definir o código do evento Click do botão btnCalcular :
Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click
'Declara variáveis usadas no projeto
Dim intNumeroMeses As Integer
Dim dblPagamentoMensal As Double
Dim dblTaxaJuros As Double
Dim intNumeroPagamentos As Integer
Dim dblPrincipal As Double
Dim dblConverteJuros As Double 'converte para juros mensal
Dim intParcelas As Integer = 1 'inicializa
Dim decSaldoDeduzido As Decimal
Dim jurosPagos As Decimal
Dim decNovoSaldo As Decimal
Dim dblTotalPagamentos As Double
Dim dblJurosDecimal As Double 'converte os juros para decimal
'obtém a entrada do usuário
dblPrincipal = Val(txtPrincipal.Text)
dblTaxaJuros = Val(txtJuros.Text)
intNumeroMeses = Val(txtNumeroMeses.Text)
'verifica os erros
If txtPrincipal.Text = "" Then
ErrorProvider1.SetError(txtPrincipal, "Informe o valor do Principal.")
ElseIf txtJuros.Text = "" Then
ErrorProvider2.SetError(txtJuros, "Informe a taxa de juros.")
ElseIf txtNumeroMeses.Text = "" Then
ErrorProvider3.SetError(txtNumeroMeses, "Informe o numero de meses do empréstimo.")
End If
'********************************************************************
' Calcula o pagamento mensal usando a fórmula *
' M = P * i / ( 1 - ( 1 + i ) ^ -n) *
'********************************************************************
'1. converte a taxa de juros para decimal
dblJurosDecimal = dblTaxaJuros / 100
'2. calcula os juros
dblConverteJuros = dblJurosDecimal / 12
'3. calcula o numero total de pagamentos (como esta em meses)
intNumeroPagamentos = intNumeroMeses
'4. Calcula o pagamento mensal
dblPagamentoMensal = dblPrincipal * dblConverteJuros / (1 - (1 + dblConverteJuros) ^ -intNumeroPagamentos) 'end monthtly payment
'exibe o pagamento mensal
lblPagamentoMensal.Text = String.Format("{0:C}", dblPagamentoMensal)
' limpa o ListBox
lbAgendaPagamento.Items.Clear()
dblTotalPagamentos = intNumeroPagamentos * dblPagamentoMensal 'total de pagamentos
lblTotalPagamentos.Text = String.Format("{0:C}", dblTotalPagamentos)
decNovoSaldo = dblPrincipal ' inicializa o saldo
Do While intParcelas <= intNumeroPagamentos
jurosPagos = decNovoSaldo * dblConverteJuros
decSaldoDeduzido = dblPagamentoMensal - jurosPagos
decNovoSaldo = decNovoSaldo - decSaldoDeduzido
lbAgendaPagamento.Items.Add(intParcelas & ControlChars.Tab & _
ControlChars.Tab & String.Format("{0:C}", dblPagamentoMensal) & ControlChars.Tab & _
ControlChars.Tab & String.Format("{0:C}", jurosPagos) & ControlChars.Tab & _
ControlChars.Tab & String.Format("{0:C}", decSaldoDeduzido) & _
ControlChars.Tab & ControlChars.Tab & String.Format("{0:C}", decNovoSaldo))
intParcelas += 1
Loop
End Sub
|
Esse código, embora pareça complexo, é muito simples, e, mostra como realizar cálculos e usar o recurso String.Format.
Agora é só alegria...
Executando o projeto vemos algumas verificações feitas conforme a figura abaixo:
![]() |
Se você quer um programa mais completo veja o : C# - Controle Financeiro Pessoal (completo com os fontes abertos)
Pegue o projeto
completo aqui:
Agenda_Amortizacao.zip
(Disse Jesus aos seus
discípulos) : "Se vós fôsseis do mundo, o mundo amaria o que era seu, mas porque
não sois do mundo, antes eu vos escolhi do mundo, por isso é que o mundo vos
odeia."
João 15:19
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
C# - Calculando os fatores primos de um número - Macoratti ...
C# - Os doze trabalho de Hércules - 12 Desafios cumpridos ...
https://msdn.microsoft.com/pt-br/library/system.string.format%28v=vs.110%29.aspx