Determinare se un anno è bisestile in JavaScript

Determinare se un anno è bisestile o meno è un aspetto importante quando si lavora con date e orari in programmazione. In questa pagina, esamineremo approfonditamente come determinare se un anno è bisestile utilizzando JavaScript, fornendo spiegazioni ed esempi pratici.

Un anno bisestile è un anno che ha 366 giorni anziché i consueti 365 giorni. Questo extra giorno, noto come "giorno bisestile", viene aggiunto a febbraio. La ragione alla base di un anno bisestile è correggere la discrepanza tra l'anno solare e l'anno civile. La regola di base è che un anno è bisestile se è divisibile per 4, ma ci sono alcune eccezioni.

Se un anno è divisibile per 100, deve anche essere divisibile per 400 per essere considerato bisestile. Ad esempio, il 2000 è un anno bisestile perché è divisibile sia per 4 che per 400, ma il 1900 non lo è perché, sebbene sia divisibile per 4, non è divisibile per 100.

Le regole di base possono essere riassunte nel seguente modo:

  • Se un anno è divisibile per 4, è bisestile.
  • Tuttavia, se l'anno è divisibile per 100, non è bisestile.
  • Se l'anno è divisibile per 400, allora è bisestile.

Implementazione anno bisestile in JavaScript

Un modo diretto per determinare se un anno è bisestile è utilizzare condizioni in base alle regole sopra menzionate. Per implementare questa regola in JavaScript, possiamo utilizzare una funzione che accetta un anno come argomento e restituisce un valore booleano indicando se l'anno è bisestile o meno. Ecco un esempio pratico:

// Funzione per verificare se un anno è bisestile
function isBisestile(anno) {
	if ((anno % 4 === 0 && anno % 100 !== 0) || (anno % 400 === 0)) {
		return true;
	} else {
		return false;
	}
}

// Esempio di utilizzo della funzione
var annoDaVerificare = 2024;

if (isBisestile(annoDaVerificare)) {
	console.log(annoDaVerificare + " è un anno bisestile.");
} else {
	console.log(annoDaVerificare + " non è un anno bisestile.");
}

In questo esempio, la funzione isBisestile verifica se un anno è divisibile per 4 ma non per 100 oppure se è divisibile per 400.

Implementazione alternativa: Utilizzare il metodo Date di JavaScript

JavaScript fornisce anche il costruttore Date che può essere utilizzato per ottenere informazioni sull'anno bisestile.

// Funzione per verificare se un anno è bisestile utilizzando il metodo Date di JavaScript
function isBisestileDate(anno) {
	return new Date(anno, 1, 29).getDate() === 29;
}

// Esempio di utilizzo della funzione
var annoDaVerificareDate = 2024;

if (isBisestileDate(annoDaVerificareDate)) {
	console.log(annoDaVerificareDate + " è un anno bisestile.");
} else {
	console.log(annoDaVerificareDate + " non è un anno bisestile.");
}

In questo esempio, creiamo una data il 29 febbraio dell'anno considerato e verifichiamo se il giorno restituito è effettivamente il 29.