Calcolare anno bisestile in C, PHP, etc.
pubblicato in Algoritmi, C/C++, Java, PHP il feb.20, 2010
L’anno bisestile si ripete ogni 4 anni ed è un accorgimento utilizzato in quasi tutti i calendari solari per mantenere in sincronia l’anno civile con il ciclo delle stagioni.
Le stagioni si ripetono una volta ogni anno tropico (il tempo che intercorre tra due equinozi o solstizi dello stesso tipo) e questo periodo è di 365 giorni, 5 ore, 48 minuti e 46 secondi.
Il nostro calendario, essendo più breve del periodo sopra indicato, causerebbe uno slittamento delle stagioni: ogni 4 anni accumulerebbe un giorno in più di ritardo. Per correggere questo slittamento, si utilizzano gli anni bisestili di 366 giorni.
Un anno bisestile ha, nel mese di febbraio, 29 giorni anziché 28. In questo articolo scopriamo come calcolare un anno bisestile attraverso i linguaggi di programmazione.
Un anno è bisestile se il suo numero è divisibile per 4, con l’eccezione che gli anni secolari (quelli divisibili per 100) sono bisestili solo se divisibili per 400.
Sono cioè bisestili tutti gli anni la cui numerazione termina con le due cifre 04, 08, 12… fino a 96; gli anni che terminano con 00 sono bisestili solo se l’anno è divisibile per 400, cioè il 1600, il 2000, il 2400 eccetera.
In linguaggi di programmazione come C, Java, PHP, Perl, si può eseguire il test:
((anno % 4 == 0 && anno % 100 != 0) || anno % 400 == 0) /* Anno Bisestile */
In PHP, ad esempio, possiamo utilizzare la funzione checkdate() per controllare l’esistenza del 29 febbraio in un determinato anno:
if ( checkdate(2,29,$year) ) /* Anno Bisestile */
E voi, che soluzione avete adottato?
Tags: anno bisestile







Loading ...
Inserisci il tuo commento