Dato un certo anno decidere se è bisestile
- ha 366 giorni invece di 365
- febbraio ha 29 giorni invece di 28
I fatti…
- la durata reale del giorno non corrisponde a quella degli orologi
- per mettere le cose a posto ogni 4 anni febbraio ha 29 giorni (ma non è abbastanza preciso)
- per mettere le cose a posto ogni 100 anni febbraio ha 28 giorni (ma non è abbastanza preciso)
- 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, 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.