回 帖 发 新 帖 刷新版面

主题:急解

键盘输入年月,计算机能打印出该月的月历,如输入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个回复)

沙发

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

板凳

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

我来回复

您尚未登录,请登录后再回复。点此登录或注册