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

AnnoElaborazioneRisposta
2001
2002, 2003, …
2001 non è multiplo di 4Non è 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, 2800, …
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.