Section courante

A propos

Section administrative du site

Dans la vie courante, il est souvent utile de savoir si une année comporte 365 ou 366 jours. Cette distinction est particulièrement importante dans les domaines de la programmation, de la gestion des calendriers, de la comptabilité, de l'astronomie et de toutes les applications manipulant des dates. Les années comptant 366 jours sont appelées années bissextiles et possèdent une journée supplémentaire ajoutée au mois de février, qui passe alors de 28 à 29 jours. Cette correction n'a pas été introduite par hasard : elle permet de compenser le fait que la durée réelle d'une révolution de la Terre autour du Soleil n'est pas exactement de 365 jours, mais d'environ 365,2422 jours. Sans ce mécanisme d'ajustement, les saisons finiraient progressivement par se décaler par rapport au calendrier civil. Le calendrier grégorien, utilisé aujourd'hui dans la majorité des pays du monde, applique donc un ensemble de règles précises permettant de déterminer quelles années doivent être considérées comme bissextiles. La règle générale veut qu'une année divisible par quatre soit bissextile, mais des exceptions existent pour les années séculaires, c'est-à-dire celles se terminant par deux zéros. Ainsi, une année divisible par 100 n'est pas bissextile, sauf si elle est également divisible par 400.

Le programme QuickBASIC/QBasic présenté ci-dessous met en oeuvre ces règles de manière simple et efficace à l'aide d'une fonction nommée IsLeapYear. Cette fonction examine une année donnée et retourne une valeur indiquant si celle-ci est bissextile ou non. L'algorithme utilise à la fois des opérations arithmétiques et des opérations logiques afin de reproduire fidèlement les règles du calendrier grégorien. Dans l'exemple fourni, le programme parcourt toutes les années comprises entre 1900 et 2009 et affiche uniquement celles qui possèdent 366 jours. Les résultats obtenus permettent de constater la présence régulière d'années bissextiles tous les quatre ans, tout en mettant en évidence certaines exceptions importantes. Ainsi, l'année 1900 n'apparaît pas dans la liste malgré sa divisibilité par quatre, alors que l'année 2000 est correctement reconnue comme bissextile puisqu'elle satisfait également à la règle des 400 ans. Cet exemple constitue une excellente démonstration de l'utilisation des opérateurs logiques et des calculs de divisibilité dans un programme, tout en illustrant l'un des mécanismes fondamentaux qui assurent la cohérence de notre système de datation moderne.

A l'aide du code source QuickBASIC/QBasic suivant, vous trouverez la réponse que vous souhaitez :

  1. DECLARE FUNCTION IsLeapYear! (year!)
  2.  
  3. FOR I = 1900 TO 2009
  4.  IF IsLeapYear(I) THEN PRINT STR$(I) + " est une année bissextile"
  5. NEXT
  6.  
  7. FUNCTION IsLeapYear (year)
  8.     IsLeapYear = ((year AND 3) = 0) AND ((year MOD 100 <> 0) OR (year MOD 400 = 0))
  9. END FUNCTION

on obtiendra le résultat suivant :

1904 est une année bissextile
1908 est une année bissextile
1912 est une année bissextile
1916 est une année bissextile
1920 est une année bissextile
1924 est une année bissextile
1928 est une année bissextile
1932 est une année bissextile
1936 est une année bissextile
1940 est une année bissextile
1944 est une année bissextile
1948 est une année bissextile
1952 est une année bissextile
1956 est une année bissextile
1960 est une année bissextile
1964 est une année bissextile
1968 est une année bissextile
1972 est une année bissextile
1976 est une année bissextile
1980 est une année bissextile
1984 est une année bissextile
1988 est une année bissextile
1992 est une année bissextile
1996 est une année bissextile
2000 est une année bissextile
2004 est une année bissextile
2008 est une année bissextile


Dernière mise à jour : Mercredi, le 14 septembre 2016