Torna al Thread

Public Class Form1 'Come chiave è la fascia della sanzione - <key,value> -> <int , Sanzione> Private DizzionarioFascia As New Dictionary(Of Integer, Sanzione)() Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' Ho tre fasce di sanzioni: '1) fascia comprende numeri da 211 a 2108.00 con rate autorizzate massimo a 12 '2) fascia comprende numeri da 2108.01 a 5270.00 con rate autorizzate massimo a 24 '3 ) fascia comprende numeri da 5270.01 a 99999.99 con rate autorizzate massimo a 60 DizzionarioFascia.Add(1, New Sanzione(211.0F, 2108.0F, 12)) DizzionarioFascia.Add(2, New Sanzione(2108.01F, 5270.0F, 24)) DizzionarioFascia.Add(3, New Sanzione(5270.01F, 99999.99F, 60)) Console.WriteLine(recuperaRataFascia(211.0F)) End Sub Private Function recuperaRataFascia(importoSanzione As Single) As Integer For i As Integer = 1 To 3 If (importoSanzione >= DizzionarioFascia(i).getMinimaSansione()) AndAlso (importoSanzione <= DizzionarioFascia(i).getMassimaSansione()) Then Console.WriteLine("Fascia di appartenenda = " & i) Console.WriteLine("Minima Fascia = " & DizzionarioFascia(i).getMinimaSansione()) Console.WriteLine("Massima Fascia = " & DizzionarioFascia(i).getMassimaSansione()) Dim valoreDivisione As Integer = 105 Dim calcoloRata As Single = (importoSanzione / CSng(valoreDivisione)) 'Arrotonda in difetto Dim totaleRata As Decimal = Math.Floor(CDec(calcoloRata)) Console.WriteLine("Totale Rata Calcolata = " & totaleRata) If totaleRata < DizzionarioFascia(i).getMassimeRate() Then Return CInt(Math.Truncate(totaleRata)) Else Return DizzionarioFascia(i).getMassimeRate() End If Else Console.WriteLine("Fascia non presente") End If Next 'Non ci sono rate Return -1 End Function End Class
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5