リスト
----- CLEAR:CLS FOR I=0 TO 6:READ C(I):NEXT DATA 13,15,15,15,15,15,11 W$="SUMOTUWETHFRSA" DTREAD(DATE$),Y,M,DT:D=1 IF M<2 THEN Y=Y-1:M=M+12 W=(Y+FLOOR(Y/4)-FLOOR(Y/100)+FLOOR(Y/400)+FLOOR((13*M+8)/5)+7*(4*M+5)+D)%7 A=30+(M-(M>7))%2-2*(M==2) IF M!=2 GOTO @A IF Y%4==0 THEN A=29 IF Y%100==0 THEN A=28 IF Y%400==0 THEN A=29 @A COLOR 15:?Y;"/";M FOR I=0 TO 6:LOCATE 1+I*3,2 COLOR C(I):?MID$(W$,I*2,2) NEXT D=1:FOR I=W TO 42:D$="" IF D>A GOTO @B X=1+FLOOR(I%7)*3+(D<=9) Y=FLOOR(I/7)*2+4:C=C(I%7) LOCATE X,Y:COLOR C:?D:D=D+1 @B NEXT -----※「W= ... %7」の長い計算式は折り返しなしです。
プログラムの流れ
・システム変数から年月を取得
・月頭の曜日を計算(ツェラーの公式)
・月の末日を計算
・カレンダーをprint
ちゃんとしたプログラムであれば、曜日や月の末日は配列をつかうとおもいます。