날짜 차이 계산기
두 날짜 간의 일수, 주수, 월수, 연수 계산
두 날짜 간의 차이 계산
날짜 차이 계산기는 무엇인가요?
날짜 차이 계산기는 두 달력 날짜 사이의 간격을 측정하고 그 결과를 일수, 주수, 대략적인 월수와 년수, 시간이나 분 같은 단위로 보여 주는 도구입니다. 프로젝트 기간, 휴가 구간, 청구 기간, 기념일, 보관 기간, 과거 사건으로부터 지난 시간을 확인할 때 유용합니다. 결과는 날짜 사이의 차이이지, 시작일과 종료일을 모두 포함한 일수로 자동 해석되는 것은 아닙니다. 예를 들어 1월 1일부터 1월 3일까지는 보통 2일 차이입니다. 월과 년은 각 달의 길이가 다르기 때문에 근사값으로 표시됩니다. 근무일, 공휴일, 시간대, 법적 마감일은 별도의 규칙에 따라 확인해야 합니다.
사용 방법
사용 방법
- 시작 날짜를 입력하세요
- 종료 날짜를 입력하세요
- '간격 계산'을 클릭해 두 날짜를 비교하세요
- 결과 확인: 일, 주, 월, 년, 시간, 분, 초
계산 규칙
- 필요한 간격 계산이 배타적인지 포괄적인지 확인하세요. 많은 비즈니스 규칙은 시작일과 종료일 모두를 셉니다.
- 시간대가 다른 작업을 할 때는 먼저 같은 시간대로 날짜를 변환하세요. 특히 시/분이 중요한 경우에 중요합니다.
활용 사례
기술 원리
정확한 일수 차이는 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) 산술을 사용하므로, 당시 실제로 사용되던 지역 달력과는 차이가 있습니다.
계산은 로컬에서 이루어지나요?
네. 두 날짜와 계산 결과 모두 브라우저 내에서만 처리됩니다. 어떤 데이터도 업로드되거나 기록되지 않습니다.