federico992 ha scritto:
Non vi sto capendo, mi potreste abbozzare un codice per favore?
L'array giorniMesi l'ho scritto
qui (come detto, è da
completare).
In un setMese, verifichi che il parametro sia un valore tra 1 e 12 compresi. Se sì, assegni al campo e stop. Se no, fai altro (es. eccezione). Il campo mese è quindi sempre un valore valido 1-12.
In un setGiorno, devi verificare il parametro basandoti sia sul mese, sia sull'anno (per il bisestile) e sull'array giorniMesi.
E una cosa semplice da fare è piccolo metodo di utilità interno alla classe (anche non esposto all'esterno) che dato un mese/anno dice quanti giorni ha il mese.
private static int getMaxGiorniMese(int mese, int anno) { .......... }
Qui dentro: a) usi l'array giorniMesi per ottenere il numero "standard" di giorni nel mese (ripeto: giorniMesi[mese-1] è semplice), poi b) se l'anno è bisestile E il mese è 2 (febbraio), aggiungi 1.
Il risultato lo restituisci.
In setGiorno quindi alla fine devi verificare che il giorno ricevuto sia compreso tra 1
E getMaxGiorniMese(mese, anno) entrambi valori inclusi.