Come esercizio sulle classi, ho creato un’applicazione che calcola interessi e montante dato importo, date di riferimento (inizio periodo e fine periodo) e tasso. Il tutto, tramite la seguente classe:
codice:
Public Class Interessi
Dim capitale As Double ' importo digitato dall'utente
Dim tasso As Double ' tasso convertito in numero decimale
Dim tassoPercentuale As Double 'tasso % (digitato dall'utente)
Dim tempo As Double ' differenza fra le due date
Dim dataInizioPeriodo As DateTime 'data impostata dall'utente con DateTimePicker
Dim dataFinePeriodo As DateTime ' data impostata dall'utente con DateTimePicker
Dim interessi As Double ' importo calcolato dall'applicazione
Dim montante As Double ' capitale + interessi (calcolato dall'applicazione)
Public Sub calcolaPeriodo() ' calcolo la differenza fra date
tempo = dataFinePeriodo.ToOADate - dataInizioPeriodo.ToOADate
End Sub
Public Sub calcolaTasso() ' converto il tasso % in decimale
tasso = tassoPercentuale / 100
End Sub
Public Sub calcolaInteressi() ' calcolo gli interessi
interessi = capitale * tasso * tempo / 365
interessi.ToString()
End Sub
Public Sub calcolaMontante() 'calcolo del montante (usata la formula diretta)
montante = capitale * (1 + (tasso * tempo))
End Sub
Public Sub vediRisultatoMontante() 'metodo per visualizzare il risultato
MessageBox.Show(montante.ToString(), "Montante")
End Sub
Public Sub vediRisultatoInteressi() 'metodo per visualizzare il risultato
MessageBox.Show(interessi.ToString(), "Interessi")
End Sub
End Class
Nel main, ho inserito il codice
codice:
If RadioInteressi.Checked = True Then
s.calcolaPeriodo() 'calcolo il tempo
s.calcolaTasso() ' converto il tasso in decimale
s.calcolaInteressi() ' calcolo gli interessi
s.vediRisultatoInteressi() ' visualizzo il risultato con messagebox
End If
If RadioMontante.Checked = True Then ' identica al caso precedente
s.calcolaPeriodo()
s.calcolaTasso()
s.calcolaMontante()
s.vediRisultatoMontante()
End If
Il problema è la messagebox: anziché visualizzare il risultato, mi visualizza sempre 0 (zero).
Scusandomi x la lunghezza del codice, potreste dirmi dove sbaglio? Grazie in anticipo
p.s.: sono i miei primi esercizi sulle classi, abbiate pietà.If RadioInteressi.Checked = True Then s.calcolaPeriodo() 'calcolo il tempo s.calcolaTasso() ' converto il tasso in decimale s.calcolaInteressi() ' calcolo gli interessi s.vediRisultatoInteressi() ' visualizzo il risultato con messagebox End If If RadioMontante.Checked = True Then ' identica al caso precedente s.calcolaPeriodo() s.calcolaTasso() s.calcolaMontante() s.vediRisultatoMontante() End If