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;
|
|
|