回答箱 No.37-2: カレンダーを作りたい

  ◆ 質問箱 No.37 質問者: 入川 精二  1996年10月 177号 P.17
      ◆ 質問箱 目次へ
No.xx-1   カレンダーを作りたい 回答者
  早瀬 壮一
1996年12月
179号 P.39
   ◆ No.37(1996年 10月号)の回答-2
1997年1月
  カレンダー作りは私も大好きです。特にThe PIPSのコマンドはカレンダ作りに役立つものがいろいろあります。バリアブルプログラム、DATE関数、NF、CPB、CS・・・そして%のテクニック。
  まずはプログラムを走らせて下さい。

  1 <CALVD>/* CALPRO/1 */
  2  月;火;水;木;金;土;日;月;火;水;木;金;土;日;*;
  3 /*1  2  3  4  5  6  7*/ /* バリアブルプログラムデータの順番 */
  4 <カレンダ>
  5 IF NAME(3,"CAL")=0 THEN GOTO $N;BIND;D;CAL;Y;
  6 $N:G;CALPRO/1;
  7 $A1:ACCEPT "何年のカレンダですか",V30;
  8 $A2:ACCEPT "1月1日は月から数えて何番目の曜日です";,X8;
  9 SET;;;1;36;;;
 10 O;カレンダー;8/4/4;DATE;日;曜;;F;ESC;
 11 IR;;T+1;394;NUM;;;1;;ESC;ATR;N;D;1;
 12 NUM;;;@DATE;;%(V30)0101;;ESC;NF;;@DATE;4/2/2;
 13 CPB;H,@;T,@;H,@日;CPB;H,@TE;T,@TE;H,@F;CU;;@ =" 0";";  ";;;
 14 VPSET CALVD;CLEAR X5;
 15 FOR X6=1 TO X8-1;
 16     READ V1;/* バリアブルプログラムを目的の数前までスキップ */
 17 NEXT;
 18 FOR X6=1 TO 7;
 19     READ V%X6;IF X5=7 THEN BREAK;
 20     /* バリアブルプログラムを必要な数V1からV7に格納 */
 21 NEXT;
 22 FOR X6=1 TO 7;
 23     LET V9=V%X6;FILL;%V9;%(H-1+X6);@曜;;/* カレンダに書き込み */
 24 NEXT;
 25 LET X5=7;
 26 FOR X6=1 TO 6;
 27 CPB;H,5;%(H-1+X5),5;%(H+X5),5;
 28 LET X5=X5*2;
 29 NEXT;
 30 FOR X6=1 TO 12;
 31     S;CS;;
 32     @DA =%('"'+V30+'"') & @F =%('"'+RIGHT$(NUM$(100+X6),2)+'"');;
 33     %(CN("@日"))/%(CN("@"));;
 34     CT;  %(FORM$(V30,5))年%(FORM$(NUM$(X6),5))月
 35     /* このタイトル本当はできませんよ。しかし作りました。*/
 36     /* どんな仕掛けがあるのか?月例会でのお楽しみ */
 37     /* 頭のスペースに見えるところが?です。 */
 38     INFO;S;256;CA;;;A;;CAL/N;/* カレンダページ作り */
 39 NEXT;
 40 SET;;;1;256;;;
 41 STOP;

プログラムの部分はプログラム集に収録されています


このページのTOPへ戻る