主题:急解
&佑慧妹妹&
[专家分:660] 发布于 2007-05-12 15:31:00
键盘输入年月,计算机能打印出该月的月历,如输入2000、1,则输出:
SUN MOD TUE WED THU FRI SAT
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
回复列表 (共2个回复)
沙发
Matodied [专家分:7560] 发布于 2007-05-12 16:37:00
CLS
INPUT year, month
day = 2
FOR i = 1980 TO year - 1
t = i: GOSUB leap
day = day + 365 + f
NEXT i
DATA 31,28,31,30,31,30,31,31,30,31,30,31
t = year: GOSUB leap
IF f AND month > 2 THEN day = day + 1
FOR i = 1 TO month - 1
READ x: day = day + x
NEXT i
day = day MOD 7
PRINT " SUN MON TUE WED THU FRI SAT"
PRINT STRING$(day * 4, " ");
RESTORE
FOR i = 1 TO 12
READ x
IF i = month THEN
t = year: GOSUB leap
IF f AND i = 2 THEN x = x + 1
FOR j = 1 TO x
PRINT USING "####"; j;
day = day + 1
IF day > 6 THEN day = 0: PRINT
NEXT j
END IF
NEXT i
END
leap:
IF t MOD 4 = 0 AND t MOD 100 <> 0 OR t MOD 400 = 0 THEN f = 1 ELSE f = 0
RETURN
板凳
moz [专家分:37620] 发布于 2007-05-12 17:46:00
deflng a-z
d$="2007,1"
y=val(left$(d$,4))
m=val(mid$(d$,6))
d=1
r=((y mod 4=0 and y mod 100<> 0)or(y mod 400=0))
y=y-1
day&=(y*365+y\4-y\100+y\400+val(mid$(" 0 31 59 90120151181212243273304334",m*3,3))+r*(m>2)+d)
week%=day& mod 7
cls
c=val(mid$(" 312831303130313130313031",m*2,2))-r
s$=space$(4*week%)
for i=1 to c
s$=s$+right$(" "+str$(i),4)
next
print " SUN MON TUE WED THU FRI SAT "
for i=1 to len(s$)step 28
print mid$(s$,i,28)
next
我来回复