回答箱 No.102-1:  土日祝日の日数を知りたい

  ◆ 質問箱 No.102  質問者:   西村 重幸  1999年09月 212号 P.13
      ◆ 質問箱 目次へ
No.102-1   土日祝日の日数を知りたい 回答者
   入川 精二
1999年11月
214号 P.19
   ◆ No.102(1999-09月号)の回答-01
   ◇ 理論的に日数を計算して出すよりも、実際にカレンダーを作ってそこからPIPS的に日数を割り出す方が分かりやすいと思います。
   ◇ そこで、カレンダーを作るのに以前作ったユーティリティプログラム‘CALENDAR’が役に立ちそうです。ただしこのプログラムは「年」を指定して丁度1年分のカレンダーを作るように出来ているので、「いつからいつまで」という指定が出来るように改造が必要です。そして出来上がったのが‘CALENDAR Ver.02.01’です。

   [第1表]                       ;   [第2表]


   「西暦年指定」と「期間指定」を選択できるようにしました。今回の質問に対しては「期間指定」を使います。
◇‘CALENDAR’プログラムで作ったカレンダーが[第1表]です。
◇ 次に「基準稼働日数表」[第3表]を作って「基準稼働日数表」バインダーに登録しておきます。
◇ カレンダーを画面において‘土日祝日’プログラムを起動すると、カレンダーに「区分」列を追加して土曜と日曜の行に「土日」と書き込みます。ここまでは自動です。


◇ カーソルが「区分」の列に出るので、「祝日」「盆休み」「年末年始」を該当する日の所に書き込みます。[第2表]この部分はコンピュータにオマカセという訳には行かないでしょうね。
◇ 確認の後、クロス集計と「基準日数」の計算をすれば[第4表]が画面に現れて完成です。
◇ プログラムには大体コメントをつけていますので、何をしているかはお分かり頂けると思います。

【土日祝日の日数を算出するプログラム】
 1 <DNS>
 2 土日祝日;STOP;
 3 
 4 <土日祝日>            【 Ver.01.01  19991018  By S.Irikawa 】
 5 $列:       IC;S;N;8;区分;                    /* カレンダーに1列追加 */
 6 $土日:     MPU;M;;@曜 ="土" | "日";"土日"=@区分;E;Y;/*土日は自動書込 */
 7 $他休日:   WC;@区分;H;ENTRY;                     /* 他の休日は手入力 */
 8 $確認:     ACCEPT "よろしいですか? [Y or N] ",V30;
 9             IF ERR(0)=55 THEN GOTO $END;
10             IF V30="Y"|"y"|"Y"|"y" THEN GOTO $基準表;
11             IF V30<>"N" & <>"n" & <>"N" & <>"n" THEN GOTO $確認;
12            GOTO $他休日;
13 $基準表:   G/S;基準稼働日数表/1;   /* 基準稼働日数表は予め作っておく */
14 $集計:     MPU;M;S;@区分;;@区分;;S@日数 +1=S@日数;E;Y;
15             LET {T,@区分 }="稼働日数";  S;
16             CAL;C[@日数 ];R@土日 +R@稼働日数 =/R@基準日数 ;
17 $END:      STOP;
CALENDARプログラム新バージョンがプログラム集に収録されています。

戻る