勤務時間の計算
09:00に出勤し17:30に退勤、昼休みが30分なら、勤務時間はちょうど8時間です。1日の開始時刻、終了時刻、無給の休憩分を入力すると、勤務表や請求書に書く小数の時間が分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 開始時刻
- 09:00
- 終了時刻
- 17:30
- 休憩時間 (分)
- 30
- 開始時刻
- 09:00:00
- 終了時刻
- 17:30:00
- 経過時間 (分)
- 510
- 経過時間
- 8.5
実際に何時間働いたかを知ることは、給与と勤務表の作業であり、暦の謎解きではありません。開始時刻に出勤打刻し、終了時刻に退勤打刻し、無給の昼休みやその他の休憩分を引き、残りを小数時間にして勤務表・請求・賃金行に載せます。この勤務時間計算機はまさにそれを行います。同一の暦日の開始時計と終了時計を読み、負でない休憩分を引き、正味の時間を時間単位で返します。日付差の道具でも、残業代の見積りでも、文字盤に時間を足す加算器でもありません。
二つの時計のあいだの実働時間が実際に意味するもの
一日の実働時間は、経過した時計時間から無給の休憩を引いたものであり、小数の時間数として書きます。開始時計と終了時計を午前零時からの分に直し、その差から休憩分を引き、六十で割ります。九時から十七時三十分までは経過五百分十であり、三十分の昼食を引くと四百分八十、ちょうど八時間です。
その八が勤務表のセル、請求行、ほとんどの給与システムが保存する値です。勤務時間の計算を探す人が求めているのも同じ等式です。週と秒の換算でも、文字盤に五時間を足すことでも、別の暦日の二つの ISO 日時の符号付き差でもありません。
この端点は、終了時計が開始時計より前である場合に夜間またぎを捏造せず拒否します。検索意図は同一日の打刻対だからです。深夜をまたぐ勤務は、翌日の暦日も知る勤務表ツールの領域です。
負の休憩分は、休憩が勤務に時間を足せないため拒否されます。打刻間隔より長い休憩も拒否されるので、結果が負の持続時間になることはありません。実装は Date を呼ばず、乱数を取らず、isolate を出ません。
実働時間の計算機が役に立つ場面
時給の職員と業務委託の方は、紙の打刻対を、昼食を除いたあとの給与出力が期待する小数時間へ、表計算を開かずに変えられます。個人事業の方は、予約した開始と終了から無給の休みを引いて、依頼者がすでに署名した勤務表と一致する請求可能時間にします。シフト責任者は、予定の開始と終了から義務の休息を引いても契約の一日の長さと等しいかを、勤務表を出す前に確認します。
教員と試験対策サイトには、09:00 から 17:30 から三十分を引いた結果を八時間(八時間半ではない)とし、逆にした対は真夜中を静かにまたがせず失敗させる決定的な基準が必要です。製品チームは hours 欄でフィクスチャを埋め、勤怠デモが継続的インテグレーションで揺れないようにします。
追加時間と単価がすでに分かっているときは残業代の道具と、時給から年収が必要なときは給与換算と組み合わせてください。
活用例
勤務表と給与のための打刻対
同一日の出勤・退勤・昼休みを、給与出力や賃金行が表計算なしで保存できる小数時間に変えます。
個人の請求とスタジオ枠
予約した開始と終了から無給の休みを引き、依頼者がすでに署名した勤務表と一致する請求可能時間にします。
よくある質問
休憩分は零でも、省略しても、小数でもよいですか?
小数の分は許されます。 負の休憩と、経過した打刻より長い休憩は拒否されます。
この勤務時間計算機はどの時計形式を受け付けますか?
00:00 から 23:59 までの二十四時間表記 HH:MM または HH:MM:SS と、AM または PM 付きの十二時間時計です。
勤務が深夜0時をまたぐ場合はどうなりますか?
この計算機は同じ日の勤務だけを扱います。終了時刻が開始時刻より前だと、翌日に回さずにエラーになります。夜勤には翌日の日付も扱えるシフト表の道具を使ってください。
分を小数の時間にするにはどうしますか?
休憩を引いた分を60で割ります。08:15から16:45まで45分休憩なら7.75時間です。45分は100分の45時間ではなく、4分の3時間として数えます。
残業代も計算できますか?
できません。休憩を引いた勤務時間だけを返します。残業時間と単価が分かっているなら残業代の計算ツールを、時給から年収を出すなら給与の換算ツールを使ってください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/life/hours \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_time":"09:00","end_time":"17:30"}'const res = await fetch("https://api.kit.forhosting.com/life/hours", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_time": "09:00",
"end_time": "17:30"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/hours",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_time": "09:00",
"end_time": "17:30"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/hours", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_time":"09:00","end_time":"17:30"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_time":"09:00","end_time":"17:30"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/hours", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"start_time": "09:00",
"end_time": "17:30"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.hours",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_break_minutes | 100000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
終了時計が開始時計より前である場合、または休憩分が負の場合、タスクは invalid_input で失敗し、課金されません。成功した API 呼び出しは公開の基本料金 $0.002 を使います。
入力契約、応答の形、誤りの扱い
二十四時間表記の HH:MM または HH:MM:SS(00:00 から 23:59)、あるいは 9:00 AM のような AM または PM 付き十二時間時計です。連続ブロックなら省略するか 0 を送ってください。整数・小数・指数表記・数値文字列は休憩として解釈されます。例:08:15 から 16:45 から 45 分を引くと hours 7.75 です。欠ける時計、25:00 や 9:70 のような面、開始より前の終了、負の休憩、打刻より長い休憩は型付き失敗であり、課金されません。必須の時計文字列二つと任意の休憩を含む JSON 本体を送ってください。start_time は出勤面です。表計算や型付きフォームが同じ契約を使えるよう、別名 start、from、clock_in を受け付けます。end_time は退勤面で同じ形式です。別名 end、to、clock_out を受け付けます。break_minutes は引く無給分の非負の有限数です。別名 breaks、break、lunch を受け付けます。真偽値、配列、オブジェクト、Infinity、NaN は break_minutes を名指しして invalid_input になります。成功時の本体は、正規化した二十四時間の start_time と end_time、解析した break_minutes、休憩前の elapsed_minutes と elapsed_hours、正味分、主値 hours、正味秒、HH:MM:SS の hours_hms、短い式文字列を返します。例:start_time 09:00、end_time 17:30、break_minutes 30 は hours 8 と hours_hms 08:00:00 です。
実働時間の計算機が役に立つ場面
このページでは作業はすべてご利用のブラウザ内で動き、API では成功した打刻ごとに $0.002 がかかり、失敗した検証は課金されず、応答のあとには何も残りません。
連携の活用例
勤務表の点検と試験の正解
予定シフトから休息を引いた値が契約の一日と等しいことを確かめ、機械時計に依存してはならないフィクスチャに hours のゴールデン値を固定します。
技術的な質問
二つの時刻のあいだの実働時間はどのように求めますか。
start_time と end_time を時計文字列(09:00、17:30:00、または 5:30 PM)として送り、必要なら break_minutes を添えてください。API は無給の休憩を引いたあとの小数の持続時間として hours を返します。
終了時刻が開始時刻より前である場合はどうなりますか。
タスクは invalid_input で失敗します。この計算機は同一日の打刻対です。開始より前の終了は夜間またぎとしては扱いません。
勤務時間の計算にはいくらかかりますか。
ブラウザの道具は無料です。API 要求は成功した呼び出しごとに前払いの KIT 残高から $0.002 を使います。無効な入力は課金されません。