月〜日の各日について、出勤時刻・退勤時刻(24時間表記)と休憩(分)を入力してください。勤務がない日は空欄のままでかまいません。時給(円)を入れると概算給与も計算します。
このページでできること
- 月〜日の各日の出勤・退勤時刻と休憩(分)を入れるだけで、日別の実働時間と1週間の合計(週間勤怠集計)がその場でわかります
- 週合計は「37時間30分」の形と、時給計算の掛け算にそのまま使える10進時間「37.5時間」の両方で表示します
- 時給(円)を入れると、「実働合計(10進時間)× 時給」の概算給与もあわせて計算します
- 「22:00出勤・6:00退勤」のような夜勤の日またぎ(退勤が翌日)にも対応しています
- 式のやさしい解説・Excel/Googleスプレッドシート/Python用のコピペ数式・計算ドリル(演習問題)もこのページにまとまっています
この計算は何の役に立つ?
平日5日、9:00〜17:30のシフトで休憩が毎日1時間なら、実働は1日7時間30分×5日=週37時間30分。10進時間の37.5時間に時給1,200円を掛けると、その週の給料はおよそ \(37.5 \times 1200 = 45000\) 円と見積もれます。
「今週はいくら稼げたか」を自分で計算できると、シフトの入れ方や収入の計画を感覚ではなく数字で立てられます(実際の支給額は割増賃金や控除などで変わるため、正確な金額は勤務先の給与明細で確認してください)。
タイムカードや勤怠アプリの記録から週の実働を自分でも集計できると、シフト表の予定と実際のずれや、給与明細の労働時間欄が自分の記録と合っているかを確かめられます。
会社の勤怠システムの中身も、このページの「日ごとに(退勤 − 出勤 − 休憩)を出して足す」計算のくり返しです。仕組みを知っていることが、自分の働いた分を守る第一歩になります。
扶養や社会保険の加入条件には、収入額のほかに「週の労働時間」(例:週20時間)が関係する場合があります。条件そのものは制度や勤務先によって異なり変わることもあるため最新の情報の確認が必要ですが、その判断の前提になる「自分が週に何時間働いているか」は、この週間集計で正確に把握できます。
毎週の実働を記録しておけば、「今月は働きすぎていないか」を早めに気づけます。
22:00出勤・翌朝6:00退勤のような夜勤は、数字だけ見ると「6 − 22」でマイナスになってしまいますが、1日分の1440分を足せば8時間勤務だとわかります。
夜勤と日勤が混ざる週でも、日ごとに同じ規則で実働を出して足すだけなので、集計を取り違えません。シフト表の週合計が合っているかを自分で確かめられます。
「何時から何時まで」をメモしておけば、勤務にかぎらず、資格試験の勉強や在宅の副業に週何時間使ったかを同じ計算で集計できます。
週単位の合計が見えると、「今週は平日にさぼった分を土日で取り返せたか」のような振り返りが数字でできるようになります。
式
用語・記号の解説
記号
| \(T_1\)・\(T_2\) | ティー・いち、ティー・に | 出勤時刻を分に直した値(\(T_1\))と、退勤時刻を分に直した値(\(T_2\))。時刻は「60 × 時 + 分」で「深夜0時から数えた分」に直します。(例:9:00 → \(T_1 = 540\)、17:30 → \(T_2 = 1050\)) |
| \(B\) | ビー | 休憩時間(分)。英語の break(休憩)の頭文字です。 |
| \(W\) | ダブリュー | 1日の実働時間(出勤から退勤までの時間から休憩を引いた、実際に働いた時間)を分で表した値。英語の work(働く)の頭文字です。 |
| \(W_1, W_2, \ldots, W_7\) | ダブリュー・いち、ダブリュー・に、…、ダブリュー・なな | 月曜から日曜まで、曜日ごとの実働時間(分)。右下の小さい数字(添え字)は何番目の曜日かを表します。 |
| \(S\) | エス | 週合計の実働時間(各日の実働時間をすべて足した値)を分で表した値。英語の sum(合計)の頭文字です。 |
| \(H\) | エイチ | 週合計の実働時間を「時間」単位の小数で表した10進時間。\(H = S \div 60\) で求めます。(例:2250分 → 37.5時間) |
| \(R\) | アール | 時給(円)。英語の rate(単価)の頭文字です。 |
| \(P\) | ピー | 概算給与(円)。\(P = H \times R\) で求めます。英語の pay(給与)の頭文字です。 |
| \(1440\) | せんよんひゃくよんじゅう | 1日の分数。\(24 \times 60 = 1440\) 分です。夜勤の日またぎ(退勤が翌日)の計算で足します。 |
用語
| タイムカード | たいむかーど | 出勤・退勤の時刻を日ごとに記録するカードや仕組みのこと。打刻された時刻の記録から実働時間を集計して、給与計算のもとにします。このページはその集計(勤怠集計)を1週間分まとめて行います。 |
| 勤怠 | きんたい | 出勤・退勤・休憩・欠勤などの勤務状況のこと。「勤怠集計」は、記録された時刻から実働時間などを集計する作業を指します。 |
| 実働時間 | じつどうじかん | 出勤から退勤までの時間から休憩時間を引いた、実際に働いた時間のこと。時給のアルバイトでは、給料の対象になるのは普通この実働時間です。 |
| 10進時間 | じっしんじかん じゅっしんじかん | 「37時間30分」を「37.5時間」のように小数で表した時間。分を60で割って小数に直すので、時給×時間の掛け算にそのまま使えます。「37時間30分=37.3時間」ではない点に注意してください。 |
| 日またぎ | ひまたぎ | 夜勤のように、勤務の途中で日付が変わること。退勤時刻の数字が出勤時刻より小さくなるので、1日分の1440分を足して計算します。 |
| 割増賃金 | わりましちんぎん | 残業や深夜勤務などに対して、通常の時給より高い率で支払われる賃金のこと。割増の条件・率は勤務先の規定や法令で決まるため、この計算機では扱わず、割増なしの「実働合計×時給」だけを計算します。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
つまずいたら、この表の内容に戻って復習するのが近道です。
| 時刻と時間(小学2〜3年) |
|
| 午前・午後と24時間表記(小学2〜3年) |
|
| くり下がりの引き算・余りのある割り算(小学2〜3年) |
|
| 小数と掛け算(小学3〜5年) |
|
Excelで計算する方法
| 曜日 | 出勤 | 退勤 | 休憩(分) | 実働(分) |
| 月 | 9:00 | 17:30 | 60 | =IF(OR(B2="",C2=""),"",ROUND(MOD(IFERROR(TIMEVALUE(C2),C2)-IFERROR(TIMEVALUE(B2),B2),1)*1440,0)-D2) |
| 火 | 9:00 | 17:30 | 60 | =IF(OR(B3="",C3=""),"",ROUND(MOD(IFERROR(TIMEVALUE(C3),C3)-IFERROR(TIMEVALUE(B3),B3),1)*1440,0)-D3) |
| 水 | 9:00 | 17:30 | 60 | =IF(OR(B4="",C4=""),"",ROUND(MOD(IFERROR(TIMEVALUE(C4),C4)-IFERROR(TIMEVALUE(B4),B4),1)*1440,0)-D4) |
| 木 | 9:00 | 17:30 | 60 | =IF(OR(B5="",C5=""),"",ROUND(MOD(IFERROR(TIMEVALUE(C5),C5)-IFERROR(TIMEVALUE(B5),B5),1)*1440,0)-D5) |
| 金 | 9:00 | 17:30 | 60 | =IF(OR(B6="",C6=""),"",ROUND(MOD(IFERROR(TIMEVALUE(C6),C6)-IFERROR(TIMEVALUE(B6),B6),1)*1440,0)-D6) |
| 土 | 0 | =IF(OR(B7="",C7=""),"",ROUND(MOD(IFERROR(TIMEVALUE(C7),C7)-IFERROR(TIMEVALUE(B7),B7),1)*1440,0)-D7) | ||
| 日 | 0 | =IF(OR(B8="",C8=""),"",ROUND(MOD(IFERROR(TIMEVALUE(C8),C8)-IFERROR(TIMEVALUE(B8),B8),1)*1440,0)-D8) | ||
| 週合計(分) | =SUM(E2:E8) |
| 週合計の実働(分) | 2250 |
| 週合計:時間 | =QUOTIENT(B1,60) |
| 週合計:分 | =MOD(B1,60) |
| 10進時間 | =ROUND(B1/60,2) |
| 時給(円) | 1200 |
| 概算給与(円) | =ROUND(B1/60*B5,0) |
2つ目の表は、B1に週合計の実働(分)を入れると、B2・B3がQUOTIENT(割り算の商)とMOD(割り算の余り)で「37時間30分」の内訳、B4が10進時間(37.5。割り切れないときはROUNDで小数第2位に四捨五入)になります。B5に時給を入れると、B6に概算給与(この例では45,000円。円未満四捨五入)が出ます。B列を自分の数値に書き換えるだけで使えます。
Googleスプレッドシートで計算する方法
| 曜日 | 出勤 | 退勤 | 休憩(分) | 実働(分) |
| 月 | 9:00 | 17:30 | 60 | =IF(OR(B2="",C2=""),"",ROUND(MOD(IFERROR(TIMEVALUE(C2),C2)-IFERROR(TIMEVALUE(B2),B2),1)*1440,0)-D2) |
| 火 | 9:00 | 17:30 | 60 | =IF(OR(B3="",C3=""),"",ROUND(MOD(IFERROR(TIMEVALUE(C3),C3)-IFERROR(TIMEVALUE(B3),B3),1)*1440,0)-D3) |
| 水 | 9:00 | 17:30 | 60 | =IF(OR(B4="",C4=""),"",ROUND(MOD(IFERROR(TIMEVALUE(C4),C4)-IFERROR(TIMEVALUE(B4),B4),1)*1440,0)-D4) |
| 木 | 9:00 | 17:30 | 60 | =IF(OR(B5="",C5=""),"",ROUND(MOD(IFERROR(TIMEVALUE(C5),C5)-IFERROR(TIMEVALUE(B5),B5),1)*1440,0)-D5) |
| 金 | 9:00 | 17:30 | 60 | =IF(OR(B6="",C6=""),"",ROUND(MOD(IFERROR(TIMEVALUE(C6),C6)-IFERROR(TIMEVALUE(B6),B6),1)*1440,0)-D6) |
| 土 | 0 | =IF(OR(B7="",C7=""),"",ROUND(MOD(IFERROR(TIMEVALUE(C7),C7)-IFERROR(TIMEVALUE(B7),B7),1)*1440,0)-D7) | ||
| 日 | 0 | =IF(OR(B8="",C8=""),"",ROUND(MOD(IFERROR(TIMEVALUE(C8),C8)-IFERROR(TIMEVALUE(B8),B8),1)*1440,0)-D8) | ||
| 週合計(分) | =SUM(E2:E8) |
| 週合計の実働(分) | 2250 |
| 週合計:時間 | =QUOTIENT(B1,60) |
| 週合計:分 | =MOD(B1,60) |
| 10進時間 | =ROUND(B1/60,2) |
| 時給(円) | 1200 |
| 概算給与(円) | =ROUND(B1/60*B5,0) |
Pythonで計算する方法
# 週間タイムカード(勤務した日だけを (曜日, 出勤, 退勤, 休憩の分) で書く)
week = [
("月曜", "9:00", "17:30", 60),
("火曜", "9:00", "17:30", 60),
("水曜", "9:00", "17:30", 60),
("木曜", "9:00", "17:30", 60),
("金曜", "9:00", "17:30", 60),
]
hourly_wage = 1200 # 時給(円)。給与を計算しないときは None にする
def to_minutes(time_text):
# "9:00" や "17:30"(時だけの "9" もOK)を0時から数えた分に直す
parts = time_text.split(":")
hour = int(parts[0])
minute = int(parts[1]) if len(parts) > 1 else 0
return hour * 60 + minute
def format_minutes(total_minutes):
# 分を「8時間30分」の形にする(0分なら「0時間」)
hours, minutes = divmod(total_minutes, 60)
if hours == 0 and minutes == 0:
return "0時間"
if hours == 0:
return f"{minutes}分"
if minutes == 0:
return f"{hours}時間"
return f"{hours}時間{minutes}分"
total_work = 0
for day_name, clock_in, clock_out, rest_minutes in week:
elapsed = to_minutes(clock_out) - to_minutes(clock_in)
if elapsed < 0:
# 退勤が出勤より早い→退勤が翌日(夜勤の日またぎ)とみなして1日分を足す
elapsed += 1440
work = elapsed - rest_minutes
total_work += work
print(f"{day_name}: {format_minutes(work)}")
decimal_hours = round(total_work / 60, 2) # 10進時間(時給計算用)
print(f"週合計: {format_minutes(total_work)}({decimal_hours}時間・{len(week)}日)")
if hourly_wage is not None:
pay = round(total_work * hourly_wage / 60) # 概算給与(円未満を丸める)
print(f"概算給与: {pay}円")
数式記述言語(LaTeX等)での書き方(コピペ可)
W = T₂ − T₁ − B (T₂ ≥ T₁), W = T₂ − T₁ + 1440 − B (T₂ < T₁)
W = T_2 - T_1 - B \quad (T_2 \ge T_1), \qquad W = T_2 - T_1 + 1440 - B \quad (T_2 < T_1)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>W</mi><mo>=</mo>
<msub><mi>T</mi><mn>2</mn></msub><mo>−</mo>
<msub><mi>T</mi><mn>1</mn></msub><mo>−</mo>
<mi>B</mi>
<mo>,</mo><mspace width="0.7em"/>
<mi>W</mi><mo>=</mo>
<msub><mi>T</mi><mn>2</mn></msub><mo>−</mo>
<msub><mi>T</mi><mn>1</mn></msub>
<mo>+</mo><mn>1440</mn><mo>−</mo>
<mi>B</mi>
</mrow>
</math>
W = T_2 - T_1 - B, W = T_2 - T_1 + 1440 - B
workMinutes = If[t2 >= t1, t2 - t1, t2 - t1 + 1440] - b
W := `if`(t2 >= t1, t2 - t1, t2 - t1 + 1440) - b;
if t2 >= t1, W = t2 - t1 - b; else, W = t2 - t1 + 1440 - b; end
W = T_2 - T_1 - B (T_2 ≥ T_1), W = T_2 - T_1 + 1440 - B (T_2 < T_1)
S = W₁ + W₂ + ⋯ + W₇, H = S ÷ 60
S = W_1 + W_2 + \cdots + W_7, \quad H = \dfrac{S}{60}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>S</mi><mo>=</mo>
<msub><mi>W</mi><mn>1</mn></msub><mo>+</mo>
<msub><mi>W</mi><mn>2</mn></msub><mo>+</mo>
<mo>⋯</mo><mo>+</mo>
<msub><mi>W</mi><mn>7</mn></msub>
<mo>,</mo><mspace width="0.7em"/>
<mi>H</mi><mo>=</mo>
<mfrac><mi>S</mi><mn>60</mn></mfrac>
</mrow>
</math>
S = W_1 + W_2 + cdots + W_7, H = S / 60
totalMinutes = Total[workMinutes]; decimalHours = totalMinutes / 60
S := add(w[i], i = 1 .. 7); H := S / 60;
S = sum(W); H = S / 60;
S = W_1 + W_2 + ⋯ + W_7, H = S / 60
P = H × R
P = H \times R
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>P</mi><mo>=</mo>
<mi>H</mi><mo>×</mo><mi>R</mi>
</mrow>
</math>
P = H xx R
pay = decimalHours * hourlyWage
P := H * R;
P = H * R;
P = H × R
ChatGPT に聞いて計算してもらう方法
あなたは勤怠集計アシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 1週間のタイムカードです。時刻はすべて24時間表記で、休憩は分です。 ・月曜〜金曜:出勤9:00、退勤17:30、休憩60分 ・土曜・日曜:勤務なし 時給は1,200円です。 次の値をそれぞれ求めてください。 1. 日別の実働時間(各日について「○時間○分」の形で) 2. 週合計の実働時間(「○時間○分」の形)と勤務日数 3. 週合計の10進時間(実働合計の分を60で割った小数の時間) 4. 概算給与(10進時間 × 時給。円未満は四捨五入。残業割増などは考えない) 各日の実働は「(退勤を分に直した値)−(出勤を分に直した値)− 休憩」で求め、もし退勤時刻が出勤時刻より早い日があれば、退勤が翌日(日またぎ)とみなして1440分を足してください。 計算に使った式と、実行結果の数値を示してください。
計算ドリル(演習問題)
このページの計算を、自分の手で計算できるようになるための演習問題です。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
