X

【コピペでできる】phpで出勤時間に応じた時給計算を行うプログラム

出退勤管理アプリケーションのようなものを構築する際、勤務時間に応じた時給計算が必要になりますよね。

つい最近、そんなプログラムをphpで構築する機会があったので、コードを残しておきます。
コピペで使えますので、ご活用ください。

先ずは、時間の掛け算をおさえる

こんな関数を作ってみます。


function MultiplTime($time,$mult) {

 //時間を「時」「分」「秒」に分ける
	$times = explode(":",$time);

 //「時」を「分」に変換します
	$hour = $times[0] * 60;

 //「秒」を「分」に変換します
	$second = round($times[2]/60 ,2);

 //「分」を足し上げます
	$minutes = $hour + $times[1] + $second;

 // 掛けたい数を掛けて、秒に変換します。
	$result = $minutes * $mult * 60;//割合いを掛け算して秒に変換

 // 秒のtimestampを「mktime」で算出し、date関数で「H:i:s」に変換
	return date("H:i:s", mktime(0,0,$result));
}

これで、指定した数字(上記のプログラムでは「$mult」)を掛けた場合の時刻が算出されます。


$time = "02:04:19";
$mult = 3;

$result = MultiplTime($time,$mult);

echo $result;

上記の結果は、


>> 06:12:57

になります。

勤務時間に時給を掛ける

さて、本題です。

上記の時間の掛け算の基本を踏まえて、時給計算をしてみましょう。


function MultiplTimeMoney($time,$Hourlywage){

 //時間を「時」「分」「秒」に分ける
	$times = explode(":",$time);

 //「時」はそのまま
	$hour = $times[0];

 //「分」を「時」に
	$second = round( $times[1] / 60, 3);

 //「秒」を「時」に
	$minutes = round( $times[2] / 360, 3);

 //「時」をすべて足しあげ、時給を掛ける
	$result = ( $hour + $second + $minutes) * $Hourlywage;

	return $result;
}

こんな感じですかね。「時間」給なので、分や秒を時間に変換しているのがポイントです。


$time = "102:05:20";
$Hourlywage = 1000;

$result = MultiplTimeMoney($time,$Hourlywage);

echo $result;

102時間5分20秒、仕事をした人が時給1,000円の場合、給与を算出すると、


>> 102139

となりました。うん、大丈夫そうですね。

ちなみに、分や秒を時間に変換する際、「round」を使っているので、小数点切り捨てしてます。

こちらは、四捨五入するのかどうかなど、決め次第だと思いますので、適宜変えていただければと思います。

shirushiru: