Q166-2:
複数の休憩時間を考慮した「終了時刻」の計算方法
A166-2:
複数の休憩時間を考慮した「終了時刻」の計算方法について回答させていただきます。
今回につきましても、1から、開始・終了時刻、休憩の開始・終了時刻、始業・終業時刻の関係を考慮した処理を作成するのは大変なため、前回同様、複合コンポーネント「稼動日時情報」を複数個使用した処理を考えました。
ご参考のためサンプルアプリケーションを掲載いたします。
ボタン[ID:35](画面左下のボタン)の処理をご覧下さい。
(ボタン[ID:35]以外の処理は、MZPlatform添付のサンプルの動作のままです)。
このサンプルでは、二つの休憩時間に対し、三つの「稼動日時情報」複合コンポーネントを使用しております。
はじめに、最初の「稼動日時情報」[ID:3]で、一つ目の休憩時間を考慮した終了時刻を計算します(ファンクションID:27)。次に、三つ目の「稼動日時情報」[ID:38]で、開始時刻から、計算された終了時刻までの時間を計算します(ファンクションID:41)。この時間は、もともと指定された時間(ID:12の数値入力フィールドに設定された値)に最初の休憩時間を考慮した(足した)値になります。最後に、二つ目の「稼動日時情報」[ID:20]で、二つ目の休憩時間を考慮した終了時刻を計算します(ファンクションID:29)。
さらに休憩時間を追加されたい場合には、ファンクション(ID:37)の処理要求イベントの最後に、2つめのメソッドと3つめ相当のメソッドを繰り返し定義してください。
具体的には。稼動日時情報複合コンポーネント(以下、Aとします)とファンクションコンポーネント(以下、Bとします)を追加したのち、ファンクション(ID:37)の処理要求イベントの最後に、2つめのファンクション(ID:41)のファンクション呼び出し(2引数)と同じメソッドを追加し、さらに、三つ目のファンクション(ID:29)と同じ処理を、稼動日時情報AとファンクションBを用いて、記述します。
関連ファイル:勤務時間計算_1_修正2.mzax