월요일부터 일요일까지 요일별로 출근 시각·퇴근 시각(24시간제)과 휴게시간(분)을 입력해 주세요. 근무하지 않은 날은 비워 두면 됩니다. 시급(원)을 넣으면 예상 급여도 계산합니다.
이 페이지에서 할 수 있는 것
- 월요일부터 일요일까지 요일별 출근·퇴근 시각과 휴게시간(분)만 넣으면 하루하루의 실근로시간과 1주일 합계(주간 근태 집계)를 바로 알 수 있습니다
- 주간 합계는 ‘37시간 30분’ 형태와, 시급 계산의 곱셈에 그대로 쓸 수 있는 소수 시간 ‘37.5시간’ 형태로 함께 표시합니다
- 시급(원)을 넣으면 ‘실근로시간 합계(소수 시간) × 시급’으로 예상 급여도 함께 계산합니다
- ‘22:00 출근, 6:00 퇴근’처럼 야간 근무로 자정을 넘기는 근무(퇴근이 다음 날)도 계산할 수 있습니다
- 공식의 쉬운 해설과 Excel·Google 스프레드시트·Python에 복사해 쓸 수 있는 수식도 이 페이지에 정리되어 있습니다
이 계산은 어디에 쓰일까요?
평일 5일, 9:00~17:30(휴게 1시간)으로 일하면 하루 7시간 30분 × 5일 = 주 37시간 30분입니다. 소수 시간 37.5시간에 시급 10,320원(2026년 최저임금)을 곱하면 그 주의 급여는 약 \(37.5 \times 10320 = 387000\)원임을 알 수 있습니다.
1주 소정근로시간이 15시간 이상이고 정해진 날을 모두 출근했다면 주휴수당도 받을 수 있습니다. 주 40시간 미만이면 ‘1주 소정근로시간 ÷ 40 × 8시간’분이 기준이라, 이 예에서는 7.5시간분인 \(7.5 \times 10320 = 77400\)원입니다. ‘이번 주에 얼마를 벌었는지’를 직접 계산할 수 있으면 근무 일정과 수입 계획을 감이 아니라 숫자로 세울 수 있습니다. (실제 급여는 가산수당·세금·4대 보험 등으로 달라지므로 정확한 금액은 급여명세서로 확인하세요)
타임카드나 출퇴근 기록 앱의 기록으로 주간 합계를 직접 집계할 수 있으면, 근무표대로 일했는지, 급여명세서의 근로시간과 내 기록이 맞는지 확인할 수 있습니다.
근태 관리 시스템의 내부도 ‘날마다 퇴근 − 출근 − 휴게시간을 구해 더한다’는 같은 계산입니다. 원리를 알아 두면 일한 만큼 제대로 받고 있는지 직접 확인하는 첫걸음이 됩니다.
한국의 근로기준법은 근로시간을 1일 8시간, 1주 40시간으로 정하고, 이를 넘는 연장근로에는 통상임금의 50% 이상을 더해 주도록 하고 있습니다(상시 5명 이상 사업장). 예를 들어 8:00~18:00에 휴게 1시간이면 하루 9시간이므로 5일이면 45시간이고, 하루 8시간을 넘는 1시간씩, 모두 5시간이 연장근로입니다. 시급 12,000원이면 가산분만 \(12000 \times 0.5 \times 5 = 30000\)원입니다.
연장근로는 1주 12시간까지가 원칙이고, 1주 소정근로시간 15시간은 주휴수당을 받을 수 있는지 가르는 기준입니다. 세부 조건은 사업장 규모와 계약에 따라 달라질 수 있으므로 고용노동부 안내나 근무처에서 확인하세요. 어느 경우든 이 계산기의 주간 합계로 실제로 몇 시간 일했는지 정확히 알 수 있습니다.
22:00~다음 날 6:00의 야간 근무는 숫자만 보면 ‘6 − 22’로 음수가 됩니다. 하루 치인 1440분을 더하면 8시간 근무임을 알 수 있습니다. 오후 10시~오전 6시의 근로는 야간근로이므로 상시 5명 이상 사업장에서는 50% 이상의 가산수당 대상이기도 합니다.
야간 근무와 주간 근무가 섞인 주에도 날마다 같은 규칙으로 실근로시간을 구해 더하기만 하면 되므로 합계를 헷갈리지 않습니다. 근무표의 주간 합계가 맞는지 직접 확인할 수 있습니다.
‘몇 시부터 몇 시까지’를 메모해 두면 자격증 공부나 재택 부업처럼 본업 이외의 활동에 일주일에 몇 시간을 썼는지도 같은 계산으로 집계할 수 있습니다.
주간 합계가 보이면 ‘평일에 빠진 만큼 주말에 채웠는가’처럼 숫자로 되돌아볼 수 있습니다.
공식
용어·기호 해설
기호
| \(T_1\), \(T_2\) | 티 일, 티 이 | 출근 시각을 분으로 바꾼 값(\(T_1\))과 퇴근 시각을 분으로 바꾼 값(\(T_2\))입니다. 시각은 ‘60 × 시 + 분’으로 자정부터 센 분으로 바꿉니다. (예: 9:00 → \(T_1 = 540\), 17:30 → \(T_2 = 1050\)) |
| \(B\) | 비 | 휴게시간(분)입니다. 영어 break(휴식)의 머리글자입니다. |
| \(W\) | 더블유 | 하루의 실근로시간(출근부터 퇴근까지의 시간에서 휴게시간을 뺀, 실제로 일한 시간)을 분으로 나타낸 값입니다. 영어 work(일하다)의 머리글자입니다. |
| \(W_1, W_2, \ldots, W_7\) | 더블유 일, 더블유 이, …, 더블유 칠 | 월요일부터 일요일까지 요일별 실근로시간(분)입니다. 오른쪽 아래의 작은 숫자(첨자)는 몇 번째 요일인지를 나타냅니다. |
| \(S\) | 에스 | 주간 실근로시간 합계(요일별 실근로시간을 모두 더한 값)를 분으로 나타낸 값입니다. 영어 sum(합계)의 머리글자입니다. |
| \(H\) | 에이치 | 주간 실근로시간 합계를 ‘시간’ 단위의 소수로 나타낸 소수 시간입니다. \(H = S \div 60\)으로 구합니다. (예: 2250분 → 37.5시간) |
| \(R\) | 알 | 시급(원)입니다. 영어 rate(단가)의 머리글자입니다. |
| \(P\) | 피 | 예상 급여(원)입니다. \(P = H \times R\)로 구합니다. 영어 pay(급여)의 머리글자입니다. |
| \(1440\) | 천사백사십 | 하루의 분 수로, \(24 \times 60 = 1440\)분입니다. 야간 근무의 자정 넘김 근무(퇴근이 다음 날)를 계산할 때 더합니다. |
용어
| 타임카드 | 출근·퇴근 시각을 날마다 기록하는 카드나 시스템(출퇴근 기록)을 말합니다. 기록된 시각을 집계해 실근로시간을 구하고 급여 계산의 기초로 삼습니다. 이 페이지는 타임카드의 1주일 치를 한꺼번에 집계합니다. |
| 근태 | 출근·퇴근·휴게·결근 등의 근무 상황을 말합니다. ‘근태 집계’는 기록된 시각으로 실근로시간 등을 집계하는 작업을 가리킵니다. |
| 실근로시간 | 출근부터 퇴근까지의 시간에서 휴게시간을 뺀, 실제로 일한 시간을 말합니다. 시급으로 일하는 아르바이트는 보통 이 실근로시간이 급여의 대상입니다. (근로기준법상 휴게시간은 근로시간에 들어가지 않으며, 4시간 근무에 30분 이상, 8시간 근무에 1시간 이상 주어야 합니다) |
| 소수 시간 | ‘37시간 30분’을 ‘37.5시간’처럼 소수로 나타낸 시간(10진법 시간)입니다. 분을 60으로 나누어 소수로 만든 것이므로 시급 × 시간의 곱셈에 그대로 쓸 수 있습니다. ‘37시간 30분 = 37.3시간’이 아니라는 점에 주의하세요. |
| 자정 넘김 근무 | 야간 근무처럼 근무 도중에 날짜가 바뀌는 것을 말합니다. 퇴근 시각의 숫자가 출근 시각보다 작아지므로 하루 치인 1440분을 더해 계산합니다. |
| 가산수당 | 연장근로·야간근로·휴일근로에 대해 통상임금에 더해 지급하는 임금을 말합니다. 근로기준법 제56조는 연장근로(1일 8시간·1주 40시간 초과)와 야간근로(오후 10시~다음 날 오전 6시)에 50% 이상, 휴일근로에 8시간까지 50% 이상·8시간 초과분 100%를 더하도록 정하고 있습니다(상시 4명 이하 사업장은 적용 제외). 조건과 비율은 법령과 사업장에 따라 달라지므로, 이 계산기는 가산 없이 ‘실근로시간 합계 × 시급’만 계산합니다. |
먼저 알아 두면 좋은 내용
이 페이지의 계산을 ‘의미를 이해하고’ 쓸 수 있도록, 먼저 알아 두면 좋은 내용을 정리했습니다.
막히는 부분이 있으면 이 표의 내용으로 돌아가 복습하는 것이 지름길입니다.
| 시각과 시간(초등학교 2~3학년, 8~10세) |
|
| 오전·오후와 24시간제(초등학교 2~3학년, 8~10세) |
|
| 받아내림이 있는 뺄셈·나머지가 있는 나눗셈(초등학교 3학년, 9~10세) |
|
| 소수와 곱셈(초등학교 3~5학년, 9~12세) |
|
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) |
| 소수 시간 | =ROUND(B1/60,2) |
| 시급(원) | 10320 |
| 예상 급여(원) | =ROUND(B1/60*B5,0) |
두 번째 표는 B1에 주간 실근로 합계(분)를 넣으면 B2·B3에 QUOTIENT(나눗셈의 몫)와 MOD(나눗셈의 나머지)로 ‘37시간 30분’의 내역이, B4에 소수 시간(37.5. 나누어떨어지지 않으면 ROUND로 소수 둘째 자리까지 반올림)이 나옵니다. B5에 시급을 넣으면 B6에 예상 급여(이 예에서는 387,000원. 1원 미만 반올림)가 나옵니다. 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) |
| 소수 시간 | =ROUND(B1/60,2) |
| 시급(원) | 10320 |
| 예상 급여(원) | =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 = 10320 # 시급(원). 급여를 계산하지 않을 때는 None으로 둡니다
def to_minutes(time_text):
# "9:00"이나 "17:30"(시만 쓴 "9"도 가능)을 자정부터 센 분으로 바꿉니다
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:
# 퇴근이 출근보다 이름 → 다음 날 퇴근(자정 넘김 근무)으로 보고 하루 치를 더합니다
elapsed += 1440
work = elapsed - rest_minutes
total_work += work
print(f"{day_name}: {format_minutes(work)}")
decimal_hours = round(total_work / 60, 2) # 소수 시간(시급 계산용)
print(f"주간 합계: {format_minutes(total_work)} ({decimal_hours}시간, {len(week)}일)")
if hourly_wage is not None:
pay = round(total_work * hourly_wage / 60) # 예상 급여(1원 미만 반올림)
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분 - 토요일·일요일: 근무 없음 시급은 10,320원입니다. 다음 값을 각각 구해 주세요. 1. 요일별 실근로시간(각 요일을 ‘○시간 ○분’ 형태로) 2. 주간 실근로시간 합계(‘○시간 ○분’ 형태)와 근무일수 3. 주간 합계의 소수 시간(실근로 합계의 분을 60으로 나눈 소수의 시간) 4. 예상 급여(소수 시간 × 시급. 1원 미만은 반올림. 가산수당·주휴수당·공제는 생각하지 않음) 요일별 실근로시간은 ‘(퇴근을 분으로 바꾼 값) − (출근을 분으로 바꾼 값) − 휴게시간’으로 구하고, 만약 퇴근 시각이 출근 시각보다 이른 날이 있으면 다음 날 퇴근(자정 넘김)으로 보고 1440분을 더해 주세요. 계산에 쓴 식과 실행 결과의 숫자를 보여 주세요.
사용법
-
1숫자 입력계산하고 싶은 숫자를 입력란에 입력합니다
-
2계산‘계산’ 버튼을 누릅니다
-
3결과 확인계산 결과가 바로 표시됩니다. 계산의 원리와 공식 해설도 같은 페이지에서 확인할 수 있습니다
DataChef의 특징
전문 지식 없이도 직관적이고 간단하게 사용
개인정보를 등록하지 않고도 이용할 수 있습니다
"다운로드"를 누르면 파일이 자동으로 삭제됩니다
출처 표기 불필요
상업적 이용 허가 연락도 필요 없습니다