These snippets contains three small function for calculating the first week-day in a month, whether a year is a leap year, and the number of days in a month. ;; ,open srfi-19 ;; return the first weekday in a month as a number ;; (0 for sunday, 1 for monday, ...) (define (first-week-day month year) (date-week-day (make-date 0 0 0 0 1 month year 0))) (define days-per-month-vector (vector 31 28 31 30 31 30 31 31 30 31 30 31)) (define (leap-year? year) (cond ((zero? (modulo year 400)) #t) ((zero? (modulo year 100)) #f) ((zero? (modulo year 4)) #t) (else #f))) (define (days-in-month month year) (if (= month 2) (if (leap-year? year) 29 28) (vector-ref days-per-month-vector (- month 1)))) -Eric