【プログラム】
1 <TOUBAN>
2 DISP OPEN,COLOR(Y),[25,5],"西暦 年のカレンダー作成";
3 $西暦: INPUT [30,5],Z1,U(F:NNNN/P/);IF ERR(0)=55 THEN GOTO $ST;
4 IF Z1<1999 THEN GOTO $西暦;
5 $表: G;DATA/1;
6 $タイトル: LET V1=NUM$(Z1)+"年 当番カレンダー";CT;%V1;CLOSE;
7 $閏年: IF NOT(Z1 MOD 4)=0 THEN LET [34,9]=" ";
8
9 $初期: LET X1=INTG(Z1);LET X2=X1-1;
10 LET X3=X1+X2/4-X2/100+X2/400;
11 LET X5=X3-X3/7*7;
12 $1月1日:
13 LET X6=X3-X3/15*15; /*15班用*/
14 LET X7=INTG(ABS(2000-Z1)); /*該当年*/
15 IF Z1=1999 THEN LET X8=X6-2 ELSE LET X8=X6+2+(4*X7);
16 IF X8>15 THEN LET X8=X8-15;
17 IF X8<1 THEN LET X8=X8+15;
18
19 $書込: FOR X10=2 TO 79 STEP 7; /*月列*/
20 FOR X11=6 TO T; /*日列*/
21 LET V1=[X11,X10];IF KLEN(V1)=0 THEN BREAK; /*月末*/
22 LET [X11,X10+2]=V10; /*曜日*/
23 LET X5=X5+1; IF X5=7 THEN LET X5=0;
24 [X11,X10+4]=NUM$(X8); /*当番*/
25 LET X8=X8+1; IF X8=16 THEN LET X8=1;
26 NEXT;NEXT;
27 $ST: CLOSE;STOP;
28
29 <曜日>
30 IF X5=0 THEN LET V10="日";IF X5=1 THEN LET V10="月";
31 IF X5=2 THEN LET V10="火";IF X5=3 THEN LET V10="水";
32 IF X5=4 THEN LET V10="木";IF X5=5 THEN LET V10="金";
33 IF X5=6 THEN LET V10="土"; RETURN;
|