Calcolare se un anno è bisestile in Java

Come verificare se un anno è bisestile utilizzando un’unica condizione

Oggi mi va di scrivere una guida su come costruire una condizione unica per verificare una condizione più o meno complessa. In questo caso prenderò come esempio il calcolo di un anno bisestile, in primo luogo perché mi serve personalmente, e già che ci sono ci scrivo su.

La prima cosa che serve fare è capire se è possibile calcolare se un anno è bisestile con una formula matematica. Ho cercato online le linee guida per calcolare l’anno bisestile, che onestamente non conoscevo, e sono ricaduto su questa guida per calcolarlo in excel, che riporterò

  1. Se l’anno è equamente divisibile per 4, andare al passaggio 2. In caso contrario, procedere con il punto 5.
  2. Se l’anno è equamente divisibile per 100, andare al passaggio 3. In caso contrario, procedere con il punto 4.
  3. Se l’anno è equamente divisibile per 400, andare al passaggio 4. In caso contrario, procedere con il punto 5.
  4. L’anno è bisestile (ha 366 giorni).
  5. L’anno non è bisestile (ha 365 giorni).

Il nostro intento sarà quello di capire come controllare tutte e 3 le condizioni in un unico if, così da rendere il codice più pulito, e riuscire comunque a determinare il risultato che desideriamo ottenere. Seguendo i 5 punti di cui sopra popoleremo la tabella degli stati che ci consentirà di capire in quali casistiche otteniamo un risultato positivo.

Divisibile per 4Divisibile per 100Divisibile per 400Risultato
XNO
VXSI
VVXNO
VVVSI

Il caso dell’anno bisestile è particolarmente agevolato dal fatto che se l’anno è divisibile per 400, allora sarà divisibile anche per 100 e per 4. Se invece non è divisibile per 400 servirà calcolare se è divisibile per 4 e non lo è per 100.

Quindi, la nostra condizione per definire se un anno è bisestile sarà

if (anno%400==0 || (anno%4==0 && anno%100!=0)) {
   System.out.print("Bisestile");
} else {
   System.out.print("Non bisestile");
}

Controlliamo ciclicamente il funzionamento dei link nei nostri articoli. Se noti dei link che non funzionano segnalacelo tra i commenti. Se hai apprezzato l'articolo considera l'idea di sostenere il blog anche con una piccola donazione. Grazie. Patreon / Ko-fi / Liberapay / Paypal

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *