Esercitazione Java programma per verificare se un certo anno è bisestile
L'anno bisestile, per chi non lo sapesse, è un anno composto da 366 giorni anziché 365.
L'anno bisestile (o anno bisesto) cade ogni quattro anni per compensare l'imprecisione del calendario tradizionale: la rotazione della terra attorno al sole, infatti, non dura esattamente 365 giorni ma circa 365 giorni e 6 ore e, per questo motivo, nel 1584, si è deciso di aggiungere un giorno ogni 4 anni al fine di recuperare il ritardo accumulato nei tre anni precedenti.
Per sviluppare il codice, quindi, per determinare se un anno è bisestile o meno è sufficiente verificare una serie di condizioni:
- l'anno deve essere maggiore di 1584 (anno in cui fu introdotto l'anno bisestile)
- Inoltre:
- l'anno deve essere divisibile per 400
- oppure l'anno deve essere divisibile per 4 ma non per 100.
Vediamo in Java un programma che consente di determinare se un anno è bisestile oppure no
package anno_bisestile;
import java.util.Scanner;
public class Anno_bisestile {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Scrivi un anno qualsiasi e ti dirò se è bissestile( >1584 )");
/*lettura dei parametri di input */
int anno= scanner.nextInt(); //variabile di INPUT intera
if(anno <1584) System.out.println("Hai inserito una data non valida");
else if (bisestile(anno))
System.out.println("e' bisestile");
else
System.out.println("NON e' bisestile");
}//end main
public static boolean bisestile(int data){
boolean bis; //variabile bis booleana (true or false)
if(data%4==0){ // se è divisibile per 4
if(data%100==0){ /* se è divisibile per 100 allora per essere bisestile deve essere divisibile per 400 */
if(data%400==0) { bis = true; }
else { bis = false; } /* non divisibile per 400 */
}
else bis = true; /* è divisibile per 4 ma non per 100 */
}
else bis = false; /* non e’ divisibile per 4 */
return bis;
}
}