IMPORT TIMES IMPORT STRFORMAT PROC PRINTCALENDAR(YEAR, NCOLS: INT) = VAR ROWS = 12 DIV NCOLS VAR DATE = INITDATETIME(1, MJAN, YEAR, 0, 0, 0, UTC()) IF ROWS MOD NCOLS != 0: INC ROWS VAR OFFS = GETDAYOFWEEK(DATE.MONTHDAY, DATE.MONTH, DATE.YEAR).INT VAR MONS: ARRAY[12, ARRAY[8, STRING]] FOR M IN 0..11: MONS[M][0] = &"{$DATE.MONTH:^21}" MONS[M][1] = " SU MO TU WE TH FR SA" VAR DIM = GETDAYSINMONTH(DATE.MONTH, DATE.YEAR) FOR D IN 1..42: VAR DAY = D > OFFS AND D <= OFFS + DIM VAR STR = IF DAY: &" {D-OFFS:2}" ELSE: " " MONS[M][2 + (D - 1) DIV 7] &= STR OFFS = (OFFS + DIM) MOD 7 DATE = DATE + MONTHS(1) VAR SNOOPYSTRING, YEARSTRING: STRING FORMATVALUE(SNOOPYSTRING, "[SNOOPY PICTURE]", "^" & $(NCOLS * 24 + 4)) FORMATVALUE(YEARSTRING, $YEAR, "^" & $(NCOLS * 24 + 4)) ECHO SNOOPYSTRING, "\N" , YEARSTRING, "\N" FOR R IN 0.. 11: BREAK FOR I, LINE IN MONS[R * NCOLS + C]: S[I] &= &" {LINE}" FOR LINE IN S: IF LINE == "": BREAK ECHO LINE ECHO "" PRINTCALENDAR(1969, 5)