시작일과 종료일을 입력하세요. 두 날짜 사이의 일수와 함께 종료일도 하루로 센 일수(양편넣기), 주 수·개월 수·년월일로 나타낸 값도 한꺼번에 계산합니다.
목차
이 페이지에서 할 수 있는 것
- 시작일과 종료일만 넣으면 두 날짜 사이의 일수를 바로 알 수 있습니다. 한쪽을 비워 두면 ‘오늘부터 시험일까지 며칠 남았는지(D-day)’, ‘기념일부터 오늘까지 며칠인지’도 바로 계산할 수 있습니다
- ‘시작일을 세지 않는 일수(날짜의 뺄셈)’와 ‘시작일과 종료일을 모두 세는 일수(양편넣기)’를 함께 보여 주므로 숙박 일수·복약 일수·일할 계산 등에서 세는 방법 때문에 헷갈리지 않습니다
- 같은 기간을 ‘몇 년 몇 개월 며칠’, ‘몇 개월’, ‘몇 주’로 나타낸 값도 한꺼번에 보여 줍니다
- 일수를 세는 방법의 쉬운 해설과 Excel·Google 스프레드시트·Python용 복사해서 쓰는 수식도 이 페이지에 정리되어 있습니다
이 계산은 어디에 쓰일까요?
‘오늘이 7월 3일이고 시험일이 다음 해 1월 16일이라면 D-197’처럼 남은 날수를 알면, ‘기출문제 10년 치를 남은 200일 동안 푼다면 20일에 1년 치’와 같이 학습 계획을 감이 아니라 숫자로 세울 수 있습니다.
카운트다운은 오늘을 세지 않는 뺄셈의 일수(초일 불산입)로 세는 것이 자연스럽습니다. 전날에는 ‘D-1’, 당일에는 ‘D-day(0일)’가 됩니다.
8월 13일에 체크인해서 8월 16일에 체크아웃하는 여행은 뺄셈으로 \(16 - 13 = 3\)박, 양편넣기로 세면 4일, 즉 ‘3박 4일’입니다.
숙박비는 박 수(뺄셈), 포켓 와이파이 대여나 여행자 보험은 일수(양편넣기)로 세는 것이 보통이므로, 두 방식의 차이를 알면 견적을 틀리지 않습니다(렌터카처럼 달력의 날수가 아니라 ‘24시간 단위’로 요금을 세는 것도 있습니다).
‘7월 1일부터 7일분’인 약은 첫날도 세는 양편넣기로, 마지막으로 먹는 날은 7월 7일입니다. 뺄셈(\(7 - 1 = 6\))으로 생각하면 하루가 어긋납니다.
‘다음 진료일까지 약이 모자라지 않을까’를 확인하는 일은 처방 일수(양편넣기)와 진료일까지의 일수(뺄셈)라는, 세는 방법이 다른 두 일수를 비교하는 작업입니다. 이 차이를 알면 약을 빠뜨리거나 처방을 놓치는 일을 막을 수 있습니다.
7월 10일에 입주한 달의 월세는 10일부터 31일까지의 22일분(양편넣기: \(31 - 10 + 1 = 22\))을 31일로 나눈 금액으로 일할 계산하는 것이 일반적입니다. 입주한 날에도 방을 쓰므로 첫날을 세는 양편넣기가 됩니다.
달 중간에 입사·퇴사했을 때의 급여 계산도 같은 생각입니다. 일수를 세는 방법(양편넣기인지 아닌지)은 계약에 따라 다를 수 있으므로, 계약서의 내용과 맞춰 확인하는 데 쓸 수 있습니다.
이자는 ‘원금 × 이율 × 일수 ÷ 365’처럼 일수에 비례해 계산되며, 이 일수를 세는 방법에 ‘한편넣기’(한쪽만 셈 = 뺄셈과 같음)와 ‘양편넣기’라는 금융 용어가 있습니다. 예금 이자는 한편넣기로 계산하는 것이 일반적입니다.
예를 들어 4월 1일에 맡기고 4월 30일에 찾으면 한편넣기로 29일분입니다. 하루 차이가 이자의 차이가 되므로, 금융 상품 설명서의 ‘이자 계산 일수’를 읽어 낼 때 이 지식이 도움이 됩니다.
임신 주수는 마지막 월경 시작일을 0일째로 하여 세며, 280일째(\(280 = 7 \times 40\)이므로 임신 40주 0일)가 출산 예정일의 기준이 됩니다. ‘오늘은 임신 몇 주 며칠인가’는 시작일부터의 일수를 7로 나누는, 이 페이지의 주 공식 그대로입니다.
산전 검사 기록이나 각종 안내는 주수로 진행되므로, 일수와 주수를 오갈 수 있으면 산모수첩의 기록이 훨씬 읽기 쉬워집니다.
공식
용어·기호 해설
기호
| \(D\) | 디 | 두 날짜 사이의 일수(시작일을 0일째로 세는, 날짜 뺄셈의 답)입니다. 일수를 뜻하는 영어 Days의 첫 글자입니다. |
| \(N_1\), \(N_2\) | 엔 일, 엔 이 | 시작일(\(N_1\))과 종료일(\(N_2\))에 매긴 일련번호입니다. Excel의 날짜 일련번호(1900년 1월 1일을 1번으로 하는 번호)와 같은 생각입니다. |
| \(D'\) | 디 프라임 | 시작일과 종료일을 모두 하루로 센 일수(양편넣기)이며, \(D' = D + 1\)입니다. 프라임(′)은 ‘원래 양을 조금 바꾼 것’을 나타낼 때 자주 쓰는 기호입니다. |
| \(W\), \(r\) | 더블유, 알 | 주 수(\(W\))와 남는 날수(\(r\))입니다. 일수 \(D\)를 7로 나눈 몫이 \(W\), 나머지가 \(r\)입니다. |
| \(y\), \(m\), \(d\) | 와이, 엠, 디(소문자) | 기간을 ‘\(y\)년 \(m\)개월 \(d\)일’로 나누었을 때의 각 부분입니다(예: 1년 2개월 10일이라면 \(y = 1\), \(m = 2\), \(d = 10\)). |
| \(M\) | 엠(대문자) | 기간을 개월만으로 나타낸 총개월 수입니다. \(M = 12y + m\)으로 구합니다(예: 1년 2개월이라면 \(M = 14\)개월). |
용어
| 역일 | 달력상의 하루하루를 말합니다. 주말이나 공휴일도 구별하지 않고 센 일수를 ‘역일 수’라고 하며, 영업일(주말과 공휴일을 뺀 일수)과 구별합니다. 이 페이지에서 계산하는 것은 역일 수입니다. |
| 초일 불산입 | 기간을 셀 때 첫날을 세지 않는 원칙입니다. 날짜의 뺄셈은 이 방식이며, 시작일이 0일째가 됩니다. 한국 민법 제157조도 기간을 일·주·월·연으로 정한 때에는 첫날을 산입하지 않는다고 정하고 있습니다(다만 그 기간이 오전 0시부터 시작하는 때에는 첫날도 셉니다). |
| 양편넣기 | 시작일과 종료일을 모두 하루로 세는 방식입니다. 날짜 뺄셈의 답에 1을 더한 값이 됩니다. 약 복용 일수·대여 기간·공사 기간 등 ‘그날 자체를 쓰는’ 경우에 씁니다. |
| 한편넣기 | 시작일과 종료일 중 한쪽만 세는 방식으로, 답은 날짜의 뺄셈과 같은 값입니다. 은행의 이자 계산 등에서 쓰는 말입니다. 참고로 양쪽 모두 세지 않으면 뺄셈의 답에서 1을 뺀 값이 됩니다. |
| 해당일 | 다음 달이나 다음 해의 ‘같은 날짜’를 말합니다. 1월 15일의 다음 달 해당일은 2월 15일입니다. ‘몇 개월’은 이 해당일에 이르렀는지로 셉니다(민법의 기간 계산과 같은 생각). 1월 31일처럼 다음 달에 같은 날짜가 없으면 그달의 말일로 대신하고, 말일이 끝난 때에 1개월로 셉니다. |
| 윤년 | 2월 29일이 있는 해입니다. 원칙적으로 4년에 한 번이지만, 100으로 나누어떨어지는 해는 평년, 400으로 나누어떨어지는 해는 윤년입니다(2100년은 평년, 2000년은 윤년). 이 계산기는 달력대로 세므로 기간에 2월 29일이 들어 있으면 빠짐없이 하루로 셉니다. |
| 일련번호 | Excel이나 스프레드시트가 날짜를 관리하려고 쓰는 번호입니다. 1900년 1월 1일을 1로 하여 하루마다 1씩 늘어납니다(2025년 1월 1일은 45658). Excel에서 날짜끼리 바로 뺄셈을 할 수 있는 것은 날짜의 정체가 이 수이기 때문입니다. 참고로 Excel에는 실제로 없는 ‘1900년 2월 29일’을 하루로 세는 오래된 사양이 있어, 이 번호는 실제 달력으로 센 것보다 1 큽니다(뺄셈으로 일수를 구할 때는 영향이 없습니다). |
먼저 알아 두면 좋은 내용
이 페이지의 계산을 ‘뜻을 알고’ 쓸 수 있도록, 먼저 알아 두면 좋은 내용을 정리했습니다.
막히면 이 표의 내용으로 돌아가 복습하는 것이 지름길입니다.
| 달력의 원리(초등학교 2학년, 7~8세) |
|
| 뺄셈의 세로셈(초등학교 2~3학년, 7~9세) |
|
| 나머지가 있는 나눗셈(초등학교 3학년, 8~9세) |
|
| 곱셈의 세로셈(초등학교 3학년, 8~9세) |
|
Excel로 계산하는 방법
| 시작일 | 2025-01-01 |
| 종료일 | 2025-03-01 |
| 일수(시작일을 세지 않음) | =B2-B1 |
| 양편넣기(시작일과 종료일을 모두 셈) | =B2-B1+1 |
| 시작일 | 2025-01-01 |
| 종료일 | 2025-03-01 |
| 주 수 | =INT((B2-B1)/7) |
| 남는 날수 | =MOD(B2-B1,7) |
| 시작일 | 2025-01-01 |
| 종료일 | 2025-03-01 |
| 햇수 | =DATEDIF(B1,B2,"Y") |
| 남는 개월 수 | =DATEDIF(B1,B2,"YM") |
| 남는 날수 | =DATEDIF(B1,B2,"MD") |
| 총개월 수 | =DATEDIF(B1,B2,"M") |
| 지난 날짜(기념일 등) | 2025-01-01 |
| 그날부터 오늘까지의 일수 | =TODAY()-B1 |
| 앞으로의 날짜(시험일 등) | 2027-01-16 |
| 오늘부터 그날까지의 일수(D-day) | =B3-TODAY() |
세 번째 표의 DATEDIF 함수는 세 번째 인수가 "Y" = 햇수, "YM" = 남는 개월 수, "MD" = 남는 날수, "M" = 총개월 수라는 뜻입니다(함수 목록에 나오지 않는 숨은 함수지만, 예전 Excel부터 계속 쓸 수 있습니다). 다만 "MD"는 월말이 얽힌 날짜(31일 시작 등)에서 이 계산기의 해당일 방식과 1~2일 어긋나거나, 드물게 이상한 값이 나오는 것으로 알려져 있습니다. 남는 날수가 중요할 때는 이 계산기의 결과를 기준으로 삼으세요.
네 번째 표처럼 TODAY()를 쓰면 파일을 열 때마다 ‘오늘까지·오늘부터’의 일수로 자동 갱신되어 편리합니다.
Google 스프레드시트로 계산하는 방법
| 시작일 | 2025-01-01 |
| 종료일 | 2025-03-01 |
| 일수(시작일을 세지 않음) | =B2-B1 |
| 양편넣기(시작일과 종료일을 모두 셈) | =B2-B1+1 |
| 시작일 | 2025-01-01 |
| 종료일 | 2025-03-01 |
| 주 수 | =INT((B2-B1)/7) |
| 남는 날수 | =MOD(B2-B1,7) |
| 시작일 | 2025-01-01 |
| 종료일 | 2025-03-01 |
| 햇수 | =DATEDIF(B1,B2,"Y") |
| 남는 개월 수 | =DATEDIF(B1,B2,"YM") |
| 남는 날수 | =DATEDIF(B1,B2,"MD") |
| 총개월 수 | =DATEDIF(B1,B2,"M") |
| 지난 날짜(기념일 등) | 2025-01-01 |
| 그날부터 오늘까지의 일수 | =TODAY()-B1 |
| 앞으로의 날짜(시험일 등) | 2027-01-16 |
| 오늘부터 그날까지의 일수(D-day) | =B3-TODAY() |
뺄셈의 결과가 날짜 모양으로 표시되면 ‘서식’ → ‘숫자’로 바꾸는 점, DATEDIF의 "MD"가 월말이 얽힌 날짜에서 1~2일 어긋날 수 있다는 점도 Excel과 같습니다.
Python으로 계산하는 방법
from datetime import date
start = date(2025, 1, 1) # 시작일
end = date(2025, 3, 1) # 종료일(오늘로 하려면 date.today())
days = (end - start).days # 두 날짜 사이의 일수(시작일을 세지 않음)
days_inclusive = days + 1 # 시작일과 종료일을 모두 셈(양편넣기)
weeks, extra_days = divmod(days, 7) # 주 수와 남는 날수
# 총개월 수: 연도의 차×12 + 월의 차. 종료일의 ‘일’이 시작일보다 앞이면 마지막 한 달이 아직 다 차지 않았으므로 1을 뺀다
total_months = (end.year - start.year) * 12 + (end.month - start.month) - (end.day < start.day)
print(f"일수: {days}일(양편넣기라면 {days_inclusive}일)")
print(f"주 수: {weeks}주 {extra_days}일")
print(f"총개월 수: {total_months}개월")
LaTeX 등 수식 언어로 쓰는 법(복사 가능)
D = N₂ − N₁
D = N_2 - N_1
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>D</mi><mo>=</mo>
<msub><mi>N</mi><mn>2</mn></msub><mo>−</mo>
<msub><mi>N</mi><mn>1</mn></msub>
</mrow>
</math>
D = N_2 - N_1
days = DateDifference[startDate, endDate, "Day"]
days := n2 - n1;
days_between = days(end_date - start_date);
D = N_2 - N_1
D′ = D + 1
D' = D + 1
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msup><mi>D</mi><mo>′</mo></msup><mo>=</mo>
<mi>D</mi><mo>+</mo><mn>1</mn>
</mrow>
</math>
D' = D + 1
daysInclusive = days + 1
daysInclusive := days + 1;
days_inclusive = days_between + 1;
D' = D + 1
D = 7W + r (0 ≤ r ≤ 6)
D = 7W + r\ \ (0 \le r \le 6)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>D</mi><mo>=</mo>
<mn>7</mn><mi>W</mi><mo>+</mo><mi>r</mi><mspace width="0.7em"/>
<mo>(</mo><mn>0</mn><mo>≤</mo><mi>r</mi><mo>≤</mo><mn>6</mn><mo>)</mo>
</mrow>
</math>
D = 7W + r (0 <= r <= 6)
{weeks, remDays} = QuotientRemainder[days, 7]
weeks := iquo(days, 7); remDays := irem(days, 7);
num_weeks = floor(days_between/7); rem_days = mod(days_between, 7);
D = 7W + r (0 ≤ r ≤ 6)
M = 12y + m
M = 12y + m
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>M</mi><mo>=</mo>
<mn>12</mn><mi>y</mi>
<mo>+</mo><mi>m</mi>
</mrow>
</math>
M = 12y + m
totalMonths = 12*years + extraMonths
totalMonths := 12*years + extraMonths;
total_months = 12*num_years + extra_months;
M = 12y + m
ChatGPT 에게 물어서 계산하는 방법
당신은 일수 계산 도우미입니다. 다음 계산을 반드시 Python 코드를 실제로 실행해서 하고, 실행 결과의 수치만을 근거로 답하세요(암산이나 추측으로 답하지 마세요). 시작일은 2025년 1월 1일, 종료일은 2025년 3월 1일입니다. 다음 값을 각각 구하세요. 1. 두 날짜 사이의 일수(시작일을 0일째로 세는, 날짜 뺄셈의 일수) 2. 시작일과 종료일을 모두 하루로 센 일수(양편넣기) 3. 1의 일수를 ‘몇 주 며칠’로 나타낸 값 계산에 사용한 코드와 실행 결과의 수치를 보여 주세요.
사용법
-
1숫자 입력계산하고 싶은 숫자를 입력란에 입력합니다
-
2계산‘계산’ 버튼을 누릅니다
-
3결과 확인계산 결과가 바로 표시됩니다. 계산의 원리와 공식 해설도 같은 페이지에서 확인할 수 있습니다
DataChef의 특징
전문 지식 없이도 직관적이고 간단하게 사용
개인정보를 등록하지 않고도 이용할 수 있습니다
"다운로드"를 누르면 파일이 자동으로 삭제됩니다
출처 표기 불필요
상업적 이용 허가 연락도 필요 없습니다