RosettaCodeData/Task/Calendar/BaCon/calendar.bacon

34 lines
1.1 KiB
Plaintext

DECLARE month$[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }
DECLARE month[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
year$ = "1969"
' Leap year
INCR month[1], IIF(MOD(VAL(year$), 4) = 0 OR MOD(VAL(year$), 100) = 0 AND MOD(VAL(year$), 400) <> 0, 1, 0)
PRINT ALIGN$("[SNOOPY HERE]", 132, 2)
PRINT ALIGN$(year$, 132, 2)
FOR nr = 0 TO 11
row = 3
GOTOXY 1+(nr %6)*22, row+(nr/6)*9
PRINT ALIGN$(month$[nr], 21, 2);
INCR row
GOTOXY 1+(nr %6)*22, row+(nr/6)*9
PRINT ALIGN$("Mo Tu We Th Fr Sa Su", 21, 2);
INCR row
' Each day
FOR day = 1 TO month[nr]
' Zeller
J = VAL(LEFT$(year$, 2))
K = VAL(MID$(year$, 3, 2))
m = nr+1
IF nr < 2 THEN
INCR m, 12
DECR K
END IF
h = (day + ((m+1)*26)/10 + K + (K/4) + (J/4) + 5*J)
daynr = MOD(h, 7) - 2
IF daynr < 0 THEN INCR daynr, 7
IF daynr = 0 AND day > 1 THEN INCR row
GOTOXY 1+(nr %6)*22+daynr*3, row+(nr/6)*9
PRINT day;
NEXT
NEXT