;; Ces programmes sont sous licence CeCILL-B V1. ;; Exécution en ligne de commande avec Bigloo : ;; $ bigloo -i Calendrier-do.scm (define (bissextile? annee) (or (and (zero? (modulo annee 4)) (not (zero? (modulo annee 100)))) (zero? (modulo annee 400)))) (define (nbJoursMois annee mois) (if (= mois 2) (if (bissextile? annee) 29 28) (+ 30 (modulo (+ mois (quotient mois 8)) 2)))) (define (Calendrier) (display "Année : ") (let ((annee (read))) (do ((mois 1 (+ 1 mois))) ((> mois 12) (newline)) (let ((nbj (nbJoursMois annee mois))) (do ((jour 1 (+ jour 1))) ((> jour nbj) (newline)) (display jour) (display " / ") (display mois) (newline)))))) (Calendrier)