Anno bisestile?

Dato un certo anno decidere se è bisestile

  • ha 366 giorni invece di 365
  • febbraio ha 29 giorni invece di 28

I fatti…

  1. la durata reale del giorno non corrisponde a quella degli orologi
  2. per mettere le cose a posto ogni 4 anni febbraio ha 29 giorni (ma non è abbastanza preciso)
  3. per mettere le cose a posto ogni 100 anni febbraio ha 28 giorni (ma non è abbastanza preciso)
  4. per mettere le cose a posto ogni 400 anni febbraio ha 29 giorni (ma non è abbastanza preciso…)

Consulta: Wikipedia: Anno_bisestile, Supporto Microsoft

Analisi

Considera i seguenti casi

Anno Elaborazione Risposta
2001
2002
2003
2001 non è multiplo di 4 Non è bisestile
2004
2008
2012
2004 è multiplo di 4
2004 non è multiplo di 100
È bisestile
2100
2200
2300
2100 è multiplo di 4
2100 è multiplo di 100
2100 non è multiplo di 400
Non è bisestile
2000
2400
2000 è multiplo di 4
2000 è multiplo di 100
2000 è multiplo di 400
È bisestile

Algoritmo #1

Se anno non è divisibile per 4 allora NON è bisestile

altrimenti se anno non è divisibile per 100 allora è bisestile

altrimenti se anno è divisibile per 400 allora è bisestile

altrimenti NON è bisestile.

Algoritmo #2

Se anno è divisibile per 400 allora è bisestile

altrimenti se anno è divisibile per 100 allora NON è bisestile

altrimenti se anno è divisibile per 4 allora è bisestile

altrimenti NON è bisestile.

Algoritmo #3

Se anno è divisibile per 4 ma non per 100 oppure se è divisibile per 400 allora è bisestile

altrimenti NON è bisestile.