Une année bissextile se caractérise par une année qui est divisible par 4 non divisible par 100 ou divisible par 400.

Cette caractérisation nous permet alors décrire ce programme.

let is_bissextile year =
	if year mod 4 = 0 && year mod 100 <> 0 || year mod 400 = 0 then
		true
	else
		false

Voici la signature du programme :

val is_bissextile : int -> bool = <fun>

On aurait pu écrire directement le test sur une seule ligne pour renvoyer directement le booléen mais pour une meilleure compréhension j’ai préféré l’écrire comme ça.

Vous pouvez essayer le code directement dans votre compilateur ou interpréteur ocamlc, ocamlopt ou via :

https://try.ocamlpro.com/