Salve a tutti sto cercando d'implementare un metodo java che aggiunga una commissione ad un conto bancario dopo aver terminato le 10 commissioni gratis disponibili e che sottragga il costo delle commissioni solo il 30 di ogni mese. Purtroppo il codice non funziona se applico questo metodo. Qualcuno può fare chiarezza sul mio errore ?
codice:import java.util.*; public class BankAccount { //COSTRUTTORE /*costruisce un saldo uguale a zero */ public BankAccount() { balance = 0; } /*costruisce un saldo predefini * @param balance saldo * @assert saldo !=0 */ public BankAccount(double newbalance) { balance = newbalance; } ///METODI /* metodo per il deposito del denaro * @param amount il saldo da depositare * @assert ammontare maggiore di zero */ public void deposit(double amount) { assert amount > 0 : "IL DEPOSITO DEV'ESSERE UN NUMERO MAGGIORE DI ZERO " + amount; double newbalance = this.balance + amount; this.balance = newbalance; } /* metodo per il prelievo * @param amount saldo da prelevare * @assert il bilancio dev'essere > 0 */ public void withdraw(double amount) { assert this.balance > 0 : " PER POTER PRELEVARE IL BILANCIO DEV'ESSERE UN NUMERO MAGGIORE DI ZERO " + this.balance; double newWithdraw = this.balance - amount; this.balance = newWithdraw; } /*metodo per aggiungere gli interessi * @param amount l'ammontare degli interessi */ public void addinterest(int interest) { double newinterest = (this.balance * interest) / 100; this.balance = this.balance + newinterest; } /* il bilancio del conto * @return balance */ public double getBalance() { return this.balance; } public void numeroCommissione(double numcom) { //ORA CALENDAR RAPPRESENTA IL 30 ESIMO GIORNO GregorianCalendar calendario = new GregorianCalendar(); calendario.add(Calendar.DAY_OF_MONTH, 2); //costo di ogni commissioni double costocommissione = 100; //numero commissioni gratis double gratis = 10; double newnumcom = numcom; //se il numero delle commissioni è maggiore di gratis cioè terminano le transazioni gratis disponibili entra nel secono ramo if if (newnumcom > gratis) { //se è il 30esimo giorno del mese applica le commissioni if(Calendar.DAY_OF_MONTH == 30) { double tot = (newnumcom - gratis); balance = balance - (costocommissione*tot); } //altrimenti aggiungi il numero di commissioni. else newnumcom++; } //altrimenti sottrai il numero delle transazioni gratis fino a terminare le transazioni gratis else gratis--; }

Rispondi quotando