108 lines
2.2 KiB
Plaintext
108 lines
2.2 KiB
Plaintext
clear screen
|
|
|
|
sub snoopy()
|
|
local n, a$
|
|
|
|
n = open("snoopy.txt", "r")
|
|
|
|
while(not eof(#n))
|
|
line input #n a$
|
|
print " "; : print color("black", "white") a$
|
|
wend
|
|
|
|
close #n
|
|
end sub
|
|
|
|
sub floor(n)
|
|
return int(n + 0.5)
|
|
end sub
|
|
|
|
sub string.rep$(s$, n)
|
|
local i, r$
|
|
|
|
for i = 1 to n
|
|
r$ = r$ + s$
|
|
next i
|
|
|
|
return r$
|
|
end sub
|
|
|
|
sub center$(s$, width)
|
|
local fill1
|
|
|
|
fill1 = floor(width - len(s$)) / 2
|
|
|
|
return string.rep$(" ",fill1) + s$ + string.rep$(" ",fill1)
|
|
end sub
|
|
|
|
sub makeMonth(name, skip, days, cal$(), j)
|
|
local cal, curday, line$, i
|
|
|
|
curday = 1 - skip
|
|
cal = 3
|
|
|
|
cal$(j, 2) = " " + daysTitle$ + " "
|
|
//cal$(j, 1) = center$(months$(name),len(cal$(j, 2)))
|
|
cal$(j, 1) = left$(months$(name) + string.rep$(" ", 80), len(cal$(j, 2)))
|
|
|
|
while(cal < 9)
|
|
line$ = ""
|
|
for i = 1 to 7
|
|
if curday < 1 or curday > days then
|
|
line$ = line$ + " "
|
|
else
|
|
line$ = line$ + str$(curday, "###")
|
|
end if
|
|
curday = curday + 1
|
|
next
|
|
cal = cal + 1
|
|
cal$(j, cal) = line$ + " "
|
|
wend
|
|
end sub
|
|
|
|
dim months$(12)
|
|
n = token("JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER", months$(), ",")
|
|
daysTitle$ = "MO TU WE TH FR SA SU"
|
|
dim daysPerMonth(12)
|
|
for n = 1 to 12
|
|
read daysPerMonth(n)
|
|
next
|
|
data 31,28,31,30,31,30,31,31,30,31,30,31
|
|
|
|
sub print_cal(year)
|
|
local i, q, l, m, startday, sep, monthwidth, calwidth, dpm, calendar$(12, 9), line$(3)
|
|
|
|
startday=mod(((year-1)*365+floor((year-1)/4)-floor((year-1)/100)+floor((year-1)/400)),7)
|
|
if not mod(year,4) and mod(year,100) or not mod(year,400) then
|
|
daysPerMonth(2)=29
|
|
end if
|
|
|
|
sep = 5
|
|
monthwidth = len(daysTitle$)
|
|
calwidth = 3 * monthwidth + 2 * sep
|
|
|
|
for i = 1 to 12
|
|
dpm = daysPerMonth(i)
|
|
makeMonth(i, startday, dpm, calendar$(), i)
|
|
startday = mod(startday + dpm, 7)
|
|
next
|
|
|
|
snoopy()
|
|
print center$("--- " + str$(year) + " ---", calwidth), "\n"
|
|
|
|
print string.rep$(" ", sep + 1);
|
|
for q = 0 to 3
|
|
for l = 1 to 9
|
|
for m = 1 to 3
|
|
print calendar$(q * 3 + m, l);
|
|
next
|
|
print
|
|
print string.rep$(" ", sep);
|
|
next
|
|
print
|
|
print string.rep$(" ", sep + 1);
|
|
next
|
|
end sub
|
|
|
|
print_cal(2018)
|