$include "REALIZE.ICN" LINK DATETIME $define ISLEAPYEAR IsLeapYear $define JULIAN julian PROCEDURE MAIN(A) PRINTCALENDAR(\A$<1$>|1969) END PROCEDURE PRINTCALENDAR(YEAR) COLS := 3 MONS := $<$> "JANUARY FEBRUARY MARCH APRIL MAY JUNE " || "JULY AUGUST SEPTEMBER OCTOBER NOVEMBER DECEMBER " ? WHILE PUT(MONS, TAB(FIND(" "))) DO MOVE(1) WRITE(CENTER("$",COLS * 24 + 4)) WRITE(CENTER(YEAR,COLS * 24 + 4), CHAR(10)) M := LIST(COLS) EVERY MON := 0 TO 9 BY COLS DO $( WRITES(" ") EVERY I := 1 TO COLS DO { WRITES(CENTER(MONS$,24)) M$ := CREATE CALENDARFORMATWEEK(YEAR,MON + I) $) WRITE() EVERY 1 TO 7 DO $( EVERY C := 1 TO COLS DO $( WRITES(" ") EVERY 1 TO 7 DO WRITES(RIGHT(@M$,3)) $) WRITE() $) $) RETURN END PROCEDURE CALENDARFORMATWEEK(YEAR,M) STATIC D INITIAL D := $<31,28,31,30,31,30,31,31,30,31,30,31$> EVERY SUSPEND "SU"|"MO"|"TU"|"WE"|"TH"|"FR"|"SA" EVERY 1 TO (DAY := (JULIAN(M,1,YEAR)+1)%7) DO SUSPEND "" EVERY SUSPEND 1 TO D$ DO DAY +:= 1 IF M = 2 & ISLEAPYEAR(YEAR) THEN SUSPEND (DAY +:= 1, 29) EVERY DAY TO (6*7) DO SUSPEND "" END