<ABC> /**** 入力画面 *************/ $START:WIN;N;1; DISP CLOSE,OPEN; DISP [10,9],"(西暦) 年 月の第 曜日"; $西暦: INPUT [17,9],Z10,U(C:NNNN); $月次: INPUT [25,9],Z11,U(NN); IF Z11<1 OR >12 THEN GOTO $月次; $回数: INPUT [35,9],X31,U(C:N); DISP [30,11],"@日 A月 B火 C水 D木 E金 F土"; $曜日:INPUT [40,9],X32,U(C:N); LET V20=KMID$("日月火水木金土",%X32,1); DISP [40,9],V20;
/**** 基本表の作成 *************/ $基本表: O;カレンダ;8;年月日;2;曜;2;週;;ESC; $当該月: LET Z12=Z10*10000+Z11*100+1; $翌 月: LET Z13=Z10*10000+(Z11+1)*100+1; IF Z11=12 THEN LET Z13=(Z10+1)*10000+101; /*翌年の元旦*/ LET Z5=DATE(Z12,Z13); /* 該当月の日数=挿入行数 */ INFO;S;36; IR;S;H;%Z5; /*月の行数を確保 */ $属性: ATR;N;D;@年月日 ; $日付: SET;S;M;6; ;;; NUM;M;C;@年月日 ;H;%Z12;1; $曜日: CAL;@年月日 MOD 7=@曜 ; MPU;M;;@曜 =0;"日"=@曜 ; @曜 =1;"月"=@曜 ; @曜 =2;"火"=@曜 ; @曜 =3;"水"=@曜 ; @曜 =4;"木"=@曜 ; @曜 =5;"金"=@曜 ; @曜 =6;"土"=@曜 ;E;Y; /**** 基本表の編集 *************/ $編集: ATR;R;@年月日 ; /*解除*/ NF;S;@年月日 ;4/2/2; W;2;;年;月;日;ESC;
★印は$該当日でのマ−クです |
/**** 該当週の検索 *************/ $C1: CLEAR X1,14; FOR X20=H TO T; LET V1=[X20,@曜 ]; LET V2='"'+V1+'"'; LET X21=INSTR(1,"日月火水木金土",%V2); LET X%X21=X%X21+1; $該当: IF V1=V20 AND X%X21=X31 THEN GOTO $該当日; NEXT; $該当無: LET V4=NUM$(Z10)+"年"+NUM$(Z11)+"月の第"+NUM$(X31)+V20; LET V4=V4+"曜日は存在しません"; GOTO $表示; $該当日: LET V3=[X20,@日 ];LET [X20,@週 ]="★";COL;R;%X20;A; LET V4=NUM$(Z10)+"年"+NUM$(Z11)+"月の第"+NUM$(X31)+V20; LET V4=V4+"曜日は"+V3+"日です";
$表示: MESSAGE V4; CLOSE;WIN;R;STOP;
回答箱のプログラムがプログラム集に収録されています。 |
□