勤務時間計算

この文書は\docs\sample\勤務時間計算_1.mzax、勤務時間計算_2(勤務情報設定機能拡張版).mzaxに基づいて説明しています。

  1. サンプルアプリケーションの概要
    1. 概要

    2. 稼働日時情報複合コンポーネントは、画面上で設定した始業時刻、終業時刻、昼休み時間情報、休日情報に基づいて、指定日時間の総勤務時間 を計算したり、あるいは、指定された勤務時間を経過したときの日時を計算したりするために用います。
      稼働日時情報複合コンポーネントは、アプリケーションビルダーのメニューから以下のように選びます。

      [複合コンポーネント追加]-[稼働日時]-[稼働日時情報.mzcx]

    3. 用途

      始業時刻、終業時刻、昼休み時間情報、休日情報を考慮に入れた稼働時間の計算を行いたいとき

  2. イベントとメソッド
    1. 公開イベントとメソッド

      ここで使用するメソッドについて説明をします。
      稼働日時情報複合コンポーネントから発生するイベントはあり ません。
      1. 初期化処理()
      2. アプリケーション開始時に行う処理。(実際には何もしていない)
      3. 終了処理()
      4. アプリケーション終了時に行う。 保存する必要のないデータをクリアする。
      5. 当日零時起点の就業時間を分単位で取得(Object)
      6. 現在の日付の午前零時から、引数で与えられた日時までの就業時間を分単位で計算して返す。
        現在の日付より前の日時を引数として与えた場合には、負の値となる。
      7. 当日零時から就業時間(分)経過後の日時を終業時刻優先で取得(Object)
      8. 現在の日付の午前零時から、引数で与えられた就業時間(分単位)だけ経過したときの日時を返す。
        計算した日時の時刻が始業時刻と一致したときには、その前の就業日の終業時刻を返す。

  3. コンポーネント使用例
  4. 概要と使用例

    付属のサンプルアプリケーションを使って、稼働日時情報複合コンポーネントの使い方を説明します。
    1. アプリケーションビルダーを起動し、[ロード]ボタンを押して“AP_DATA¥Sample¥勤務時間計算 _1.mzax”をロードしてください。
      [実行]もしくは[実行(設定可)]ボタンをクリックすると、サンプルアプリケーションが起動します。
    2. 起動画面の右側が稼働日時情報複合コンポーネントの部分で、ここで始業時刻、終業時刻、昼休み情報、休日情報を設定します。
      なお、1日の就業時間は始業時刻、終業時刻、昼休み情報に基づいて自動計算されます。
    サンプルアプリケーション実行画面
    1. 勤務時間計算

    2. 開始日時と終了日時を指定して、その間の勤務時間を計算します。
      1. 動作確認
        [勤務時間計算]ボタンをクリックすると、勤務時間が分単位で表示されます。この数値は、指定された日時の間に含まれている就業 時間の総和となります。
      2. コンポーネント接続処理
        1. 【接続1-1】「勤務時間計算」ボタンをクリックすると、「当日零時起点の就業時間を分単位で取得(Object)」メ ソッドを起動し、現在の日付の零時から開始日時までの勤務時間を計算します。
          引数に[日付入力フィールド(開始日時)]のデータを設定します。
        2. 【接続1-2】「当日零時起点の就業時間を分単位で取得(Object)」メソッドを起動し、現在の日付の零時から終了 日時までの勤務時間を計算します 。
          引数に[日付入力フィールド(開始日時)]のデータを設定します。
        3. 【接続1-3】時間数の差を[減算(ー)]で計算します。
        4. 【接続2-1】計算結果を「勤務時間」欄の数値入力フィールドに設定します。

    実行画面例
    [編集画面図1]  

    1. 勤務終了日時計算

    2. 開始日時と勤務時間を指定して、勤務終了日時を計算します。
      1. 動作確認
      2. [勤務終了日時計算]ボタンをクリックすると、勤務終了日時が表示されます。
        指定された開 始日時から、指定された勤務時間だけ就業時間内に働くと、この日時になります。
      3. コンポーネント接続処理
        1. 【接続3-1】勤務終了日時計算]ボタンをク リックすると、複合コンポーネントの「当日零時起点の就業時間を分単位で取得(Object)」メソッドを起動し、現在の日 付の零時から開始日時までの勤務時間を計算します。
          引数は[日付入力フィールド(開始日時)]のデータです。
        2. 【接続3-2】これに、指定された勤務時間を加えます。
        3. 【接続4-1】計算結果を引数として、複合コンポーネントの「当日零時から就業時間(分)経過後の日時を終業時刻優 先で取得 (Object)」を起動して勤務終了日時 を計算します。
        4. 【接続4-2】計算結果の日時を「終了日時」欄の日付入力フィールドに設定します。
      4. 「終業時刻優先」とは
      5. 「当日零時から就業時間(分)経過後の日時を終業時刻優先で取得 (Object)」メソッドの 『終業時刻優先』の意味について説明します。
        勤務時間の計算においては、終業時刻と翌営業日の始業時刻とは一致します。
        なぜならば、その間の勤務時間はゼロだからです。
        「終業時刻優先」とは、計算した日時がちょうどそのような時刻に一致した場合には、終業時刻の方の日時を返すということです。
        一方、「当日零時から就業時間(分)経過後の日時を始業 時刻優先で取得(Object)」メソッドの場合には、始業時刻の方の日時を返します。

    [編集画面図2]  

    1. 勤務情報設定機能拡張版

    2. 稼働日時情報複合コンポーネント” 稼働日時情報.mzcx”では、休日設定を手入力で行うことが必要でした。
      これを日時選択パネルから日付を選択することでより細かい設定を行えるように機能拡張したものが” 稼働日時情報_2(勤務情報設定機能拡張版).mzcx”です。
      この複合コンポーネントは、アプリケーションビルダーのメニューから以下のように選びます。

      画面の中央の日時選択パネルで稼動日を選択するとその日は特定の休業日として登録され、表示色が赤に変わります。
      一方、休業日を選択するとその日は特定の稼働日として登録され、表示色が黒に変わります。
      これらの休日設定は、[休日設定ファイル読込...]ボタンおよび[休日設定ファイル保存...]ボタンをクリックすることで、 CSV ファイルとして入出力することが可能です。

    機能拡張版実行画面例