ToolActToolAct

날짜 차이 계산기

두 날짜 간의 일수, 주수, 월수, 연수 계산

두 날짜 간의 차이 계산

날짜 차이 계산기는 무엇인가요?

날짜 차이 계산기는 두 달력 날짜 사이의 간격을 측정하고 그 결과를 일수, 주수, 대략적인 월수와 년수, 시간이나 분 같은 단위로 보여 주는 도구입니다. 프로젝트 기간, 휴가 구간, 청구 기간, 기념일, 보관 기간, 과거 사건으로부터 지난 시간을 확인할 때 유용합니다. 결과는 날짜 사이의 차이이지, 시작일과 종료일을 모두 포함한 일수로 자동 해석되는 것은 아닙니다. 예를 들어 1월 1일부터 1월 3일까지는 보통 2일 차이입니다. 월과 년은 각 달의 길이가 다르기 때문에 근사값으로 표시됩니다. 근무일, 공휴일, 시간대, 법적 마감일은 별도의 규칙에 따라 확인해야 합니다.

사용 방법

사용 방법

  1. 시작 날짜를 입력하세요
  2. 종료 날짜를 입력하세요
  3. '간격 계산'을 클릭해 두 날짜를 비교하세요
  4. 결과 확인: 일, 주, 월, 년, 시간, 분, 초

계산 규칙

  • 필요한 간격 계산이 배타적인지 포괄적인지 확인하세요. 많은 비즈니스 규칙은 시작일과 종료일 모두를 셉니다.
  • 시간대가 다른 작업을 할 때는 먼저 같은 시간대로 날짜를 변환하세요. 특히 시/분이 중요한 경우에 중요합니다.

활용 사례

두 날짜 사이의 정확한 일수 차이 측정시작일과 종료일을 선택하면 일수를 비롯해 주, 대략적 월, 대략적 년, 시간, 분, 초의 추가 합계가 계산됩니다. 그레고리력 규칙을 따르므로 1900년은 평년, 2000년은 윤년으로 처리되며, 이는 어느 한쪽 끝이 2월 29일에 가까울 때 중요합니다.
이벤트 및 기록에 대한 경과 시간 확인구독, 서비스 기간, 여행 기간, 프로젝트 타임라인, 기념일, 학습 연속 기록, 월을 수동으로 세기 쉬운 실수가 나는 모든 기록에 활용하세요. 두 원본 날짜를 결과 옆에 보관하면 나중에 간격을 검증할 수 있습니다. '36개월'이라고 주장하는 것보다 원시 시작-종료 쌍이 감사하기 훨씬 쉽습니다.
대략적 월/년 값을 주의 깊게 활용기본 결과는 일수입니다. 월과 년 값은 대략적인 요약이므로, 과금 기간, 법적 나이, 계약 규칙은 해당 맥락에서 요구하는 특정 규칙을 사용하세요. 대략적 값은 방향 참고용으로만 활용하고 최종 정책 결정에는 사용하지 마세요. ISO 주 번호(연도의 첫 목요일이 포함된 주가 1주)도 단순 일수에서는 자동으로 산출되지 않는 또 다른 규칙입니다.
간격 표기 전 포괄적/배타적 계수 합의휴가 기간과 시험 기간의 경우 양쪽 끝을 모두 셀지 미리 합의한 뒤, 결과를 '사이' 또는 '걸쳐'로 표시하여 법무, 인사, 재무 보고서가 엇갈리지 않도록 하세요. 단일 범위에서는 오프바이원이 사소해 보이지만 규칙이 전체 HR, 급여, 재무 내보내기에 일관되지 않으면 누적됩니다.
대략적 월을 특정 캘린더와 교차 검증과금 주기, 수습 기간, 보증 기간이 월 또는 년으로 정의된 경우, 같은 날짜 쌍을 캘린더 인식 규칙으로 실행하여 대략적 값이 정책과 일치하는지 확인하세요. 같은 보고서에서 두 단위를 혼합하는 것은 계약 분쟁의 흔한 원인으로, 특히 동일 고객이 30일제와 캘린더 월제 플랜을 함께 사용하는 B2B SaaS 갱신에서 문제가 됩니다. '시작일로부터 12개월'이라는 기념일 조항은 보통 정확히 1 캘린더 년을 의미하며, 365일이 아니므로 1월 15일 시작이면 다음 해 1월 15일이지 1월 14일이나 16일이 아닙니다.

기술 원리

정확한 일수 차이는 Math.floor((end.getTime() - start.getTime()) / 86_400_000)으로 계산됩니다. 여기서 86,400,000은 DST가 적용되지 않는 24시간의 밀리초 수입니다. 이는 배타적 구간을 반환합니다. 1월 1일부터 1월 3일까지는 3일이 아닌 2일입니다. 뺄셈이 달력 칸을 세는 것이 아니라 두 시점 사이의 간격을 측정하기 때문입니다. 포괄적 계산(양쪽 끝점 포함)이 필요하면 결과에 1을 더하세요. 많은 법률, 휴가, 청구 규칙이 이를 요구하며, 오프바이원은 인사와 재무 보고서 간 불일치의 가장 흔한 원인입니다. 주수는 단순히 days / 7이며, 페이지에는 파생 합계인 시간 = days * 24, 분 = days * 1440, 초 = days * 86,400도 함께 표시됩니다. 월과 년 차이는 의도적으로 "약"으로 표기됩니다. 캘린더 월과 년의 길이가 다르기 때문입니다. 단순한 접근법은 days / 30.436875(평균 그레고리 월)와 days / 365.2425(400년 주기의 평균 그레고리 년)입니다. 현황 보고서와 대시보드에는 적합하지만 계약에는 부정확합니다. 캘린더 정확한 "두 날짜 사이의 X개월"을 구하려면, 연도 x 12 + 월 성분을 뺀 뒤 종료일의 일이 시작일의 일보다 이전이면 1을 빼는 알고리즘을 사용합니다. 이는 대부분의 날짜 라이브러리(date-fns의 differenceInMonths, dayjs의 $.diff('month'), Temporal의 Duration.from)가 계산하는 방식입니다. 연도 계산도 같은 특이점이 있습니다. 2024-02-29부터 2025-02-28까지는 관례에 따라 1년(월말 고정) 또는 0년 11개월 30일로 셀 수 있습니다. 윤년은 그레고리력 규칙(4로 나누어떨어지지만, 400으로 나누어떨어지지 않는 세년은 제외. 1900년 = 평년, 2000년 = 윤년, 2024년 = 윤년)을 따릅니다. 2월 29일을 포함하는 구간은 일 수가 에포크 이후 밀리초에 기반하므로 자동으로 하루를 더 잡습니다. 시간대 처리는 양쪽 끝점이 하루 미만 해상도일 때 중요합니다. 로컬 시간 문자열로 만든 두 Date 값을 빼면 로컬 UTC 오프셋만큼 차이가 날 수 있으며, DST 전환을 건너는 구간은 명목상 24시간이 아닌 23시간 또는 25시간이 될 수 있습니다. Y2038 문제(Unix time_t의 32비트 부호 있는 정수 오버플로우, 2038-01-19T03:14:07Z)는 이 페이지에 영향을 주지 않습니다. JavaScript Date는 에포크 기준 약 1억 일까지 표현 가능한 64비트 부동소수점을 사용하지만, 32비트 C로 작성된 다운스트림 시스템은 여전히 주의가 필요합니다.

  • 정확한 일수 = Math.floor((end - start) / 86_400_000). DST가 아닌 하루당 86.4M ms.
  • 결과는 기본적으로 배타적: 1월 1일~1월 3일 = 2일. 포괄적 계산(양쪽 끝점 포함)에는 1을 더하세요.
  • 대략적 월은 평균 30.436875일 사용, 년은 그레고리 400년 주기의 평균 365.2425일 사용.
  • 캘린더 정확한 월 차이: (y2-y1)*12 + (m2-m1), 종료일 < 시작일이면 -1. date-fns differenceInMonths와 일치.
  • 윤년: 4로 나누어떨어지지만, 세년은 400으로도 나누어떨어져야 함(1900년 아니오, 2000년 예, 2024년 예).
  • DST 전환은 23시간, 25시간짜리 캘린더 하루를 만듭니다. 24시간 뺄셈이 1 캘린더 일이 아닐 수 있습니다.
  • JavaScript Date는 64비트 부동소수점으로, Unix Y2038(32비트 time_t 오버플로우, 2038-01-19 03:14:07 UTC)의 영향을 받지 않습니다.

예시

두 해 전체 (2025-01-01부터 2026-12-31까지)

시작 : 2025-01-01
종료 : 2026-12-31

일       : 730
주       : 104.29
개월     : ~24.00 (근사값)
년       : ~2.00 (근사값)
참고     : 2028년이 다음 윤년이므로 기간을 연장하면 2028년 2월 29일이 포함됩니다.

짧은 기간 (3일)

시작 : 2026-06-11
종료 : 2026-06-14

일       : 3
시간     : 72
분       : 4320
초       : 259200
양 끝 포함 카운트: 4일

연도가 바뀌는 프로젝트 기간

시작 : 2026-01-15  (킥오프)
종료 : 2026-07-20  (정식 출시)

일       : 186
주       : 26.57
개월     : ~6.16
사용 사례 : 진행 보고, 회고, 간트 차트 요약

일 단위 나이 계산

생일          : 1995-03-15
오늘          : 2026-06-11

생존 일수     : 11,411
년 (근사값)   : 31.24
개월          : ~374.9
정확한 일수가 필요할 때 유용 (예: 기념일)

타임존 주의 (도쿄 vs 로스앤젤레스)

동일한 달력 날짜 '2026-07-15'라도 실제 시점은 다릅니다:
  도쿄  (UTC+9)  -> 2026-07-15 00:00 = 2026-07-14 15:00 UTC
  로스앤젤레스 (UTC-7) -> 2026-07-15 00:00 = 2026-07-15 07:00 UTC
그대로 사용하면 약 16시간 차이가 발생하여 1일 결과가 뒤바뀔 수 있습니다.
해결책: 차이를 계산하기 전에 두 날짜를 같은 타임존으로 변환하세요.

자주 묻는 질문

두 날짜 사이의 차이는 어떻게 계산되나요?

달력 산술 방식입니다. 결과는 년, 월, 일로 표시되며, 추가로 총 주, 일, 시, 분, 초 단위 합계도 함께 보여줍니다. 년과 월은 기념일 방식(같은 월/일이 지난 후에야 년 수가 증가)으로 계산되고, 일은 두 날짜 사이의 달력 기준 일수입니다.

년 + 월 + 일을 합쳐도 총 일수와 정확히 맞지 않는 이유는 무엇인가요?

월마다 일수가 28~31일로 다르기 때문입니다. '1년 2개월 5일'의 총 일수는 포함된 달이 28, 29, 30, 31일 중 무엇이냐에 따라 달라집니다. 총 일수 필드는 순수 달력 산술을 사용하며 가장 정확한 숫자입니다.

시작일은 포함되나요, 제외되나요?

시작일을 제외하고 계산합니다. 같은 날짜의 경우 차이는 0일로 표시됩니다. '포함' 방식의 계산이 필요하다면(예: 숙박일 계산) 결과에 1을 직접 더하세요.

주말이나 공휴일은 제외되나요?

아니요. 본 페이지는 모든 달력일을 계산합니다. 영업일 차이(주말과 선택적으로 공휴일 제외) 계산이 필요하다면 'Workday Calculator' 도구를 사용하세요.

DST 변경 후 시간 부분이 어색해 보이는 이유는 무엇인가요?

시·분 부분은 절대 시간을 사용하므로, 일광 절약 시간 전환 구간을 포함하면 시각 필드에 한 시간이 더해지거나 빠질 수 있습니다. 일수 자체는 달력 기준이므로 영향을 받지 않습니다.

비교할 수 있는 최대 날짜 범위는 어디까지인가요?

JavaScript Date는 Unix epoch를 기준으로 ±100,000,000일을 지원하므로 약 ±271,000년 이내의 과거 또는 미래 날짜 쌍이라면 모두 가능합니다. 1582년 이전 날짜는 외삽 그레고리력(proleptic Gregorian) 산술을 사용하므로, 당시 실제로 사용되던 지역 달력과는 차이가 있습니다.

계산은 로컬에서 이루어지나요?

네. 두 날짜와 계산 결과 모두 브라우저 내에서만 처리됩니다. 어떤 데이터도 업로드되거나 기록되지 않습니다.