回答箱 No.058-1: 日々の労働時間の集計をしたい

    ◆ 質問箱 No.058  質問者: 遠藤 弘悦  1997年08月 187号 P.18
        ◆ 質問箱 目次へ
No.058-1 日々の労働時間の集計をしたい 回答者
   大岡 満雄
1997年09月
188号 P.22
   ◆ No.058(1997年 08月号)の回答-1
 質問の要旨は、労働時間の合計をすると桁あふれに成るとのこと。そんな事ってあるの?あれ、桁あふれします。実務で充分あることなのに、私が遭遇しなかったことの方が恥ずかしく感じました。日付の差は日数であって日数を年月日で呼ぶことはありません。一方、時刻の差は秒数であると共に、この差を時分秒で呼ぶ所に基本的な錯誤(PIPS設計で時間を時刻と一緒)があったのではないかと思います。
 合計値が24時間を含めてそれ以上だと*****の桁あふれになります。それなら24時間以上なら24時間で区切って、あふれた分のみを時分秒で表して、時の単位の所に区切り分を合わせれば、良さそうです。
       1 <PGM>    
       2 ATR;R;8;                  /* 労働時間の列 ATR 解除 */  
       3 CAL/C;C6-C4=C8;C[8];RH+R(T-1)=/RT;ESC;   
       4 LET Z1=H(T,8);            /* 合計の秒数を取り込む */  
       5 LET Z2=Z1/86400;          /* 24時間=86400で区切る */
       6 LET Z3=INT(Z2);           /* 区切りを整数にVする  */  
       7 LET Z4=Z1-(Z3*86400);     /* あふれ秒数を求める */  
       8 LET V4=TIMENUM$(Z4);      /* 秒数を時分秒に */  
       9 LET V5=LEFT$(V4,2);       /* 時の2桁を求める */  
      10 LET V6=RIGHT$(V4,3);      /* 分と秒のみを全部 */  
      11 LET Z5=VAL(V5);           /* 時を数値に */  
      12 LET Z7=(Z3*24)+Z5         /* 時の合計 */  
      13 LET V7=NUM$(Z7);          /* 文字にする */  
      14 LET V8=V7+V6;             /* 時分秒の完成 */ 
      15 ATR;N;T;8;                /* 労働時間を計算するためATR */ 
      16 CAL;C6-C4=C8;             /* 労働時間を計算 */  
      17 ATR;R;8;                  /* 完成時分秒を差し込むためATR解除 */ 
      18 LET [T,8]=V8;             /* 書き込み */  
      19 ATR;N;T;8;                /*ATRで戻しても合計値は見かけ変わりません */ 
      20 STOP;   


このページのTOPへ戻る