勤務時間の計算と集計のサンプル

分単位で勤務時間を計算するサンプルです。
時間を入力して、計算ボタンを押してください。ボタンの下に結果が表示されます。 休憩時間は省略すると法定休憩時間が自動計算されます。

Sampleボタンを押すとサンプル情報が入力され、入力された情報はあとで変更できます。 サンプル情報は自動計算を見てもらうために休憩時間がわざと空欄になっています。 また、24時間以上の勤務はここでは計算できません。

出退勤データの入力
曜日 出勤時間 退勤時間 休憩時間

【計算の解説】

法定休憩について
拘束時間から法定休憩時間を算出。休憩は通常勤務と深夜勤務を比べて長い方から差引。

深夜時間について
深夜時間は法定の22時〜5時までをカウント。

残業時間について
1日で通常+深夜が8時間を超える分を残業カウント。
残業が深夜時間になる場合は深夜残業としてカウント。

週残業について
週40時間を超える分は「週残業チェック」で別表記です。変動労働制など就業規則によって扱いが変わるので、 普通時間は週残業が合算されたままです。就業規則にあわせてコードを変更して解決します。

【仕様の解説】

作成言語
PHPで計算、HTML、CSSで表示し、サンプルデータはJavascriptで呼び出しています。 MySQLのデータベースとつないでいませんが、本運用ではデータベースとつなげて使います。 もともとExcelVBAで作成したものなので、ExcelVBA関数として移植も可能。

関数形式
PHPで法定休憩と勤務時間を別々に計算する関数を作成して使用しています。 どちらの関数も「hh:mm」形式で出勤、退勤を引数で渡すと、法定休憩は「休憩時間」を、 勤務時間は「普通時間,残業時間,深夜時間,深夜残業時間」を配列形式で返します。
1日2回出勤まで計算できる関数になっていますが、サンプル展示は省いています。

使い道
出勤と退勤の連続データがあれば、ループさせながら交互に関数を使うと自動計算になります。 このサイトでは、シフト表作成(24時間のコンビニ用) サンプルの概算給与計算で使用しています。本運用ですが、例えば勤怠管理を非接触式ICカード式に変えるなど、 入力された出退勤データが自動化したときなどの仮計算システムなどに応用できます。 仮計算までなのは、就業規則によってルールは様々なので、それに合わせてコードを変えるという前提です。