60 lines
1.6 KiB
Plaintext
60 lines
1.6 KiB
Plaintext
year = 1969
|
|
# year = number substr timestr systime 1 4
|
|
#
|
|
wkdays$ = "Su Mo Tu We Th Fr Sa"
|
|
pagewide = 80
|
|
blank$ = ""
|
|
month$[] = [ " January " " February " " March " " April " " May " " June " " July " " August " " September" " October " " November " " December " ]
|
|
days[] = [ 31 28 31 30 31 30 31 31 30 31 30 31 ]
|
|
#
|
|
func$ center txt$ .
|
|
h$ = substr blank$ 1 ((pagewide - len txt$) / 2)
|
|
return h$ & txt$ & h$
|
|
.
|
|
func$ makewk fst lst day .
|
|
for i to day - 1
|
|
wstr$ &= " "
|
|
.
|
|
for i = fst to lst
|
|
i$ = i
|
|
if i <= 9 : i$ = " " & i
|
|
wstr$ &= i$ & " "
|
|
.
|
|
return substr wstr$ & blank$ 1 20
|
|
.
|
|
proc dow y &ndow &leap .
|
|
leap = 0
|
|
if y mod 4 = 0 : leap = 1
|
|
if y mod 100 = 0 : leap = 0
|
|
if y mod 400 = 0 : leap = 1
|
|
ndow = y * 365 + y div 4 - y div 100 + y div 400 + 1
|
|
ndow = (ndow - leap) mod1 7
|
|
.
|
|
len lin$[] 8
|
|
proc prmonth nmonth newdow monsize .
|
|
lin$[1] &= " " & month$[nmonth] & " "
|
|
lin$[2] &= wkdays$ & " "
|
|
lin$[3] &= makewk 1 (8 - newdow) newdow & " "
|
|
for i = 4 to 7
|
|
lin$[i] &= makewk (9 + h - newdow) lower monsize (15 + h - newdow) 1 & " "
|
|
h += 7
|
|
.
|
|
lin$[8] &= makewk (37 - newdow) monsize 1 & " "
|
|
if len lin$[3] + 22 > pagewide
|
|
for i to 8
|
|
print center lin$[i]
|
|
lin$[i] = ""
|
|
.
|
|
.
|
|
.
|
|
for i to pagewide : blank$ &= " "
|
|
dow year newdow leap
|
|
print center "[ picture of Snoopy goes here ]"
|
|
print center year
|
|
for i = 1 to 12
|
|
monsize = days[i]
|
|
if i = 2 and leap = 1 : monsize = 29
|
|
prmonth i newdow monsize
|
|
newdow = (monsize + newdow) mod1 7
|
|
.
|