Command Palette

Search for a command to run...

날짜 차이 계산기: 오프 바이 원 버그 없이 날짜 사이의 날짜를 계산합니다

날짜 차이 계산기: 오프 바이 원 버그 없이 날짜 사이의 날짜를 계산합니다

T
Toolz Team
|Jul 12, 2026|19 최소 읽기

시간과 날짜 모음의 일부

나는 한 번 고객에게 환불 $9 때문에 울타리 기둥. 내가 구축 한 SaaS 는 14 일 평가판을 가지고 있었고,내 비례 배분 코드는 "days used" as 계산 endDate - startDate 밀리초 단위로 86,400,000 으로 나눈 값을 반올림했습니다. 1 일 오후 11 시에 평가판을 시작하고 15 일 오전 1 시에 변환하고 수학은 14 일 - 그러나 customer's 정신 모델은 "1 일 가입했고 that's 첫날," 15 일째를 열다섯으로 만듭니다. 평가판은 14 일 또는 14 박이었습니까? 내 코드와 가격 책정 페이지는 서로 의견이 달랐고 고객은 내가하기 전에 알아 차렸다.

That's 날짜 산술에 관한 것: 빼기는 사소하고 정의 는 모든 것이 잘못되는 곳입니다. 포함 또는 독점 계산. 여부 & quot;a month" 부터 1 월 31 일 2 월 28 일,3 월 2 일,또는 3 월 3 일. 여부 & quot;day"는 일광 절약 시간제 하루 23 시간 또 다른 25 을 만드는 24 시간입니다. 이들 중 하나 하나 적어도 한 번 나를 물린,그리고 I & #39;ve 는 라라벨과 반응 응용 프로그램을 발송 한 십년 이상.

A 날짜 차이 계산기 질문에 정확하게 대답하기 위해 존재하므로 알려진 올바른 결과에 대해 가정 - 및 코드 - 를 확인할 수 있습니다. Toolz.dev의 것은 일, 주, 월 및 년으로 된 두 날짜 사이의 간격을 계산하여 브라우저에서 완전히 지속적으로 사용합니다: 송장 기간 확인, 계약 기간 확인, 정착 & quot;how many days until launch" 논쟁 대신 링크가있는 Slack에서의 토론.

이 가이드는 그것을 사용하는 방법을 다루고, - 더 유용하게 - 다섯 가지 방법 날짜 수학은 조용히 당신에게 거짓말을, 그래서 당신은 자신의 코드에서 그들을 인식.

TL;DR: 에서 두 개의 날짜를 선택하세요 Toolz.dev 날짜 차이 계산기 그리고 일,주, 월,년 - 즉석,무료, 클라이언트 측에서 정확한 간격을 얻습니다. 매번 확인할 수 있는 3 개의 함정: 포함 대 독점 계산 (종료일이 계산됩니까?), 월 산술 (월은 28–31 일이므로 "1 개월 후"는 모호함), 시간대 (시간대가 없는 날짜는 모든 영역에서 다른 순간입니다. - timestamps 를 먼저 변환합니다 타임스탬프 변환기). 일회성 간격이 아닌 반복 간격의 경우 that's a job for the 크론 파서.


주요 특징

정확한 일 수(DST 지뢰 없음)

기본 출력: 두 달력 날짜 사이의 정확한 일수입니다. 순진한 (b - a) / 86400000 you'll은 일광 절약 전환이 현지 시간의 날짜 사이에 위치할 때마다 수천 개의 JavaScript 코드베이스 중단을 찾아 89.958333일과 같은 결과를 생성한 다음 잘못된 방향으로 반올림됩니다. 이 계산기는 산술을 수행하기 전에 두 날짜를 UTC로 구문 분석하여 전체 버그 클래스를 회피합니다. UTC는 결코 앞으로 튀거나 뒤로 떨어지지 않으므로 하루는 항상 정확히 86,400,000밀리초이고 카운트는 깨끗하게 나옵니다. 한편 연도/월/일 분석은 평균 월로 나누는 것이 아니라 실제 달력 수학(전체 월을 앞당긴 다음 남은 날짜를 계산)으로 계산됩니다. 코드에 90이 표시되고 계산기에 89가 표시되면 계산기를 믿고 현지 시간 데이터에서 DST 경계를 찾으십시오.

한 번에 여러 단위

일,주, 달,년으로 표현되는 동일한 간격 - 동시에. 이것은 들리는 것보다 더 유용합니다. 왜냐하면 다른 도메인은 다른 단위를 말하기 때문입니다: 법적 계약은 몇 달 안에 이야기하고,스프린트 계획 회담은 몇 주 안에,청구 회담은 며칠 안에,HR 회담은 몇 년 동안 서비스를 제공합니다. 3 월 15 일과 9 월 15 일 사이의 간격은 184 일,26 주와 2 일,정확히 6 개월이며,필요한 숫자는 전적으로 who's 가 묻는 것에 달려 있습니다. 그들 모두를 하나의보기로 갖는 것은 "184 를 7 로 나눈 것은... 26 과 change" 머릿속의 산술,정확히 산술 사람들이 틀리는 것입니다.

독점 총계 플러스 포함 영업일

울타리 기둥 문제가 눈에 띄게 나타났습니다. 여기서 총 일수는 다음과 같습니다 독점적인- 날짜 사이의 간격 - 그래서 월요일에서 금요일은 4 로 읽습니다. 바로 그 아래에,계산기가 계산됩니다 영업일 (월요일에서 금요일,주말 제외) Excel's NETWORKDAYS 가 사용하는 포괄적 인 규칙을 사용하여,그리고 또한 얼마나 많은 주말 일 떨어졌다 알려줍니다,그래서 같은 월요일부터 금요일 스팬은 5 작업 일 읽습니다. 같은보기에서 독점적 인 총 및 포괄적 인 근무일 수를 보는 것은 "how many days"가 두 끝점을 계산하는지에 따라 두 개의 정답을 가지고 있다는 것을 매일 작은 알림입니다. 내 $9 환불은 내 가격 페이지가 포괄적 인 것을 묻는 동안 내 코드가 독점적 인 질문에 대답했기 때문에 발생했습니다 - 그리고 두 규칙을 한 번에 보여주는 도구는 우연히 하나를 선택하는 것을 멈추는 도구입니다.

몇 달, 윤년, 세기에 걸쳐 작동합니다

2 월은 29 가있을 때를 제외하고 28 일이있다; 2024 년은 윤년이었다 2100 won't 는 4 로 나눌 수 있음에도 불구하고 (모든 사람을 잡는 그레고리 세기 규칙). 계산기는 "a 년이 아닌 실제 달력 규칙을 사용하기 때문에이 모든 권리를 얻습니다 365.25 days" 근사치. you've ever 필요 날짜 범위에 대한 하루 카운트 윤년에 2 월을 스팬 - 이자 발생, SLA 창, 2 월 29 일 생일 근처의 연령 계산 - 당신은 이러한 가장자리 경우가 정확하게 어디 손으로 압연 수학 실패 알고있다.

즉시, 가입 없음, 업로드 없음

날짜는 들어가고,대답은 나오고,전적으로 클라이언트 측. 아무것도 전송되거나 저장되지 않습니다. 대부분의 날짜 수학에서 이것은 보안보다는 편리합니다 - 항상 그런 것은 아닙니다. 고용 날짜,의료 타임 라인,소송 마감일: 날짜 쌍은 조용히 민감 할 수 있으며 there's 계산기가 서버 측에서 볼 필요가 없습니다. 도구는 빠르게로드되고로드되면 오프라인으로 작동하며 누군가가 "wait,그 티켓이 얼마나 오래 열렸습니까?"를 물을 때 중간 회의에 도달하는 것이기도합니다


날짜 차이 계산기를 사용하는 방법

1 단계: 시작 날짜를 입력 합니다

열다 날짜 차이 계산기 그리고 첫 번째 날짜를 설정합니다. 피커를 사용하거나 직접 입력하거나 오늘 버튼을 눌러 현재 날짜로 스냅합니다. There's 선택적인 시간 필드 (HH:mm) 자정이 아닌 시간 또는 분까지 총계가 필요한 경우 소스 데이터가 Unix 타임스탬프 또는 시간 구성 요소가 있는 ISO 8601 문자열인 경우 먼저 달력 날짜로 해결하고 시간대에 대해 숙고하십시오. 왜냐하면 1751846400 는 도쿄에서 7 월 7 일이고 로스앤젤레스에서는 여전히 7 월 6 일입니다. The 타임스탬프 변환기 그 번역을 처리합니다.

2 단계: 종료 날짜를 입력합니다

두 번째 날짜를 설정 합니다. 주문 doesn't 당신을 걱정할 필요가-차이는 크기, 그리고 there's 스왑 버튼 만약 당신이 어쨌든 시작과 끝을 뒤집을. 고의적 인 생각 가치가 여기: 마지막 날 종료 날짜입니다 기간 또는 첫날 이후 그것은? "ends December 31" 그리고 "renews January 1" 종료 날짜가 다른 동일한 기간을 설명하며, 이는 "same" 범위를 계산하는 두 사람 사이의 일일 불일치의 가장 일반적인 단일 소스입니다.

3 단계: 필요한 단위의 차이점을 읽으십시오

결과는 단위 전체에 간격을 보여줍니다. 당신의 문제가 안으로 표시한 것을 가지고 가고,손으로 그들 사이에서 후에 개조하는 것을 저항하십시오 - "6 months"와 "182.5 days"는 달이 aren't 고정 길이이기 때문에,교환할 수 없습니다. 대답이 계약,계산서, 또는 SLA 로 갈 경우,단위를 진술하십시오 그리고 계산 규칙("30일, 시작 날짜 및 quot; 제외)을 사용하면 다음 사람이 방금 해결한 모호성을 다시 도입할 수 있습니다.

4단계: 귀하의 코드에 대한 건전성 확인

만약 you're 계산기를 사용하여 애플리케이션을 디버깅한다면,코드가 동일한 날짜 쌍에 대해 생성하는 것과 그 답을 비교해 보세요. 정확히 하루의 불일치는 펜스포스트 또는 시간대 경계 문제를 의미합니다. 분수 하루의 불일치는 DST 변경에 걸친 밀리초 분할을 의미합니다. 한 달 말경 2~3 일의 불일치는 월-산술 오버플로를 의미합니다. The 크기 오류 중 진단은 다음과 같습니다. 아래에서 각 오류에 대해 자세히 알아보세요.


기술 심층 분석: 날짜 수학이 잘못된 이유

날짜 산술은 뺄셈처럼 보이며 실제로는 달력 규칙, 시간대 정치 및 정의 모호성의 더미입니다. 5 가지 실패 모드는 거의 모든 버그 I & # 39;ve를 출하하거나 검토했습니다.

1. 담초 (off-by-one) 문제. 1 일과 15 일 사이에는 14 개의 간격이 있지만 양쪽 끝을 계산하면 15 일이 있습니다. 어느 숫자도 "the difference" convention 을 지정할 때까지는 호텔 숙박,대출 이자 및 임대 기간은 독점 계산을 사용합니다; 처방전,이벤트 기간 및 "days of coverage" 보통 inclusive 를 사용합니다. 버그 패턴: 시스템의 한 부분이 각각을 사용합니다. convention 을 적어 둡니다.

2.달은 단위가 아니다. "1 월 31 일 이후 한 달" 명백한 대답이 없습니다 - 2 월 31 일 doesn't 존재. 자바 스크립트's 유산 Date 오버플로로 처리합니다: new Date(2026, 0, 31) 플러스 1 개월은 3 월 3 일에 착륙 (2 월 28 일 + 3 오버플로 일). PHP's strtotime('+1 month') 도 마찬가지다. 대부분의 인간,그리고 대부분의 청구 시스템이 원한다 클램핑 대신: 1 월 31 + 1 개월 = 2 월 28 (또는 29). 도서관은 다릅니다 - date-fns 및 탄소 클램프는 기본적으로 월 추가 도우미, 원시 Date 오버플로 - 그리고 새로운 시간적 API 동작을 명시적인 옵션으로 만들어 올바른 디자인으로 만듭니다. 앱이 28 일 이후 앵커 날짜로 매월 아무 것도 수행하면 이것이 당신이 가지고있는 버그입니다. you & # 39;ve 가 아직 발견했는지 여부.

3.하루가 항상 24 시간은 아니다. 일광 절약 시간을 준수하는 모든 시간대에서 1년에 하루는 23시간이고 다른 하루는 25시간입니다. 일차를 계산하는 코드입니다 milliseconds / 86_400_000 범위가 전환을 교차할 때마다 정수가 아닌 정수를 생성하고 그 이후에 발생합니다 Math.roundMath.floor 선택은 당신이 & # 39;하나로 꺼지는지 여부를 결정합니다. 강력한 접근 방식은 순간이 아닌 달력 날짜에 일 산술을하거나 나누기 전에 DST 가없는 UTC 로 모든 것을 정규화하는 것입니다.

4. 시간대가 없는 날짜는 시간의 순간이 아니다. "2026-07-06" 24시간 폭입니다 범위 그것은 모든 시간대에서 다른 순간으로 시작하고 끝납니다. JavaScript 에서이 버그의 가장 불쾌한 버전: new Date("2026-07-06") 다음과 같이 구문 분석합니다 UTC 자정 ecmascript 사양에 따라 그리니치 서쪽의 모든 시간대에서는 7월 5일로 렌더링됩니다. Postgres에서 날짜가 표시된 React 대시보드에서 오후의 대부분을 잃었습니다 DATE 미국 사용자를 위해 하루 일찍 표시되는 열 - 열은 괜찮았고 API도 괜찮았으며 생성자가 버그였습니다. 이 기사에서 한 줄만 빼면: 절대 베어를 공급하지 마십시오 YYYY-MM-DD 문자열 new Date() 현지 시간 통역이 중요한 경우.

5. ISO 8601 은 다른 질문에 대한 답입니다. ISO 8601(2026-07-06, 빅엔디안, 제로 패딩)은 날짜를 해결합니다 표현- it's undembiguous where 07/06/2026 는 오하이오에서는 7 월 6 일,옥스퍼드에서는 6 월 7 일을 의미하며 사전순으로 정렬합니다. 모든 로그,API, 파일 이름에 사용합니다. 하지만 날짜에는 아무 것도 하지 않습니다 산술; ISO 날짜의 완벽하게 포맷 된 쌍은 여전히 위의 네 가지 문제가 모두 있습니다. 형식 규율과 수학 규율은 별도의 규율입니다.

메타 수업: 실제 달력 라이브러리(목표가 지원하는 경우 date-fns, Luxon, Carbon 또는 Temporal)를 사용하고 밀리초 공간이 아닌 달력 공간에서 산술을 수행하고 월말, 윤일, DST 등 가장자리 사례를 확인합니다. 주말 - 와 같은 독립적인 소스를 상대로 계산기. 독립적인 검증은 툴링의 전체 요점입니다; 그 철학에 대해서는 더 자세히 설명합니다 타임스탬프 변환기 가이드.


일반적인 사용 사례

청구 기간 및 시험 기간

구독 시스템은 날짜 수학에 살고 죽는다. Proration 은 청구 기간 내에 정확한 일 수를 필요로한다; 시험은 명확한 종료 날짜가 필요하다; 연간 계획은 2 월 29 일 생존해야합니다. 지불 흐름을 구축 할 때 나는 이제 모든 기간 경계를 두 번 계산합니다 - 코드에서 한 번,계산기에서 한 번 - 테스트를 작성하기 전에. 그것은 항상 월말 또는 DST 가장자리에서,그리고 항상 혼란스러운 고객 이메일로 표면화되었을 종류의 실제 버그를 적어도 네 번 잡았습니다. 시스템의 어느 곳에서나 하루 수에 대해 돈이 배가되면 독립적으로 하루 수를 확인하십시오.

프로젝트 마감일 및 스프린트 계획

"지금부터 출시 날짜 사이에 몇 주 근무?" 모든 계획 회의에서 나오고 사람들이 머리에서 계산하는 대답은 한두 가지로 안정적으로 꺼집니다. 인간은 월 경계를 넘어 계산하는 데 능숙하지 않습니다. 며칠과 몇 주 동안 진정한 달력 간격을 얻는 데는 5 초가 걸리고 대화의 근거가됩니다. 거기에서 이미 낙관적 인 숫자에서 일주일 동안 시작하는 것이 아니라 휴일을 빼고 정직하게 완충합니다.

계약, 공지 및 마감일 계산

법률 및 HR 날짜는 용서할 수없는 관습과 함께 제공됩니다: 90 일 통지 기간,30 일 치료 기간,제출 기한 & quot; 21 일 이내에 서비스. & quot; 이들은 정확히 포괄적 인 - vs - 독점적 인 지뢰밭이며,하루 늦게되는 비용은 하루 일찍되는 비용보다 범주 적으로 더 나쁩니다. 스팬을 계산 한 다음 문서가 사용하는 엔드 포인트 규칙을 확인하십시오. (그리고 진정으로 중요한 모든 것에 대해 변호사는 계산기를 이깁니다 - 도구는 관할권이 아닌 카운트를 알려줍니다's 계산 규칙.)

연령 및 재직 기간 계산

연령,근무 년수,계정 수명 - all "difference in years and months" 내부에 숨어있는 클램핑 규칙에 대한 문제 (2 월 29 일에 태어난 사람은 관할권에 따라 2 월 28 일 또는 3 월 1 일의 법적 생일을 가지며 이는 엔지니어가 인코딩해야하는 실제 사항임) 에 대한 빠른 답변을 위해 - 이 계정의 나이,마지막 배포 이후 얼마나 오래,사고 이후 며칠 - 계산기는 REPL 을로드하지 않고 정확한 수치를 제공합니다.

데이터 건전성 확인

보고서에 평균 주문-배송 간격이 47 일이고 내장이 2 주라고 표시되면 실제 행을 가져와 두 날짜를 손으로 확인하십시오. "bug"의 절반 시간은 시간대 이동 또는 업스트림 구문 분석의 월/일 교환입니다. 신뢰할 수 있는 계산기에 대해 3~4 개의 행을 스팟 확인하는 것이 파이프라인을 불신할지 내장을 불신할지 결정하는 가장 빠른 방법입니다. 두 개의 내보낸 보고서 사이에서 변경된 사항을 눈알링하기 위해 텍스트 차이 도구 이 워크플로우와 잘 어울립니다.


계산 규칙을 비교했습니다

협약 월 → 금은 같습니다 에 사용됩니다 조심하세요
독점 (갭) 4 일 호텔 숙박, 이자 발생, 일수 연령 Feels "one short" 기술적이지 않은 독자들에게
포함(스팬) 5 일 약물 복용일, 이벤트 기간, "보장일 및 견적; 독점 시스템과 혼합되면 하나씩 꺼집니다
영업일 4 또는 5 마이너스 휴일 SLA, 배송 견적, 법적 기한 휴일 달력은 국가마다, 심지어 계약별로도 다릅니다
정확한 24시간 시간에 따라 다릅니다 임대, 주차, API 요금 창 DST는 한 로컬 데이를 23h로 만들고 다른 하루를 25h로 만듭니다
달력 월/년 "1개월 후" 청구 주기, 계약, 임차 월 길이는 다양합니다; 월말 클램핑 대 오버플로

The table's real message: "how long between these dates" is not one question. 문제와 일치하는 행을 선택하고 코드와 복사본에 명시적으로 이름을 지정하면 전체 분쟁 범주가 사라집니다. 이는 나머지 분야와 동일한 분야입니다 웹 개발자 툴킷 계속 밀어붙입니다. 암시적인 내용을 명시적으로 만들고 버그의 절반을 증발시킵니다.


자주 묻는 질문

날짜 차이 계산기 란 무엇입니까?

날짜 차이 계산기는 일, 주, 월, 년으로 표시되는 두 달력 날짜 사이의 정확한 간격을 계산합니다. 정신 수학이나 순진한 밀리초 빼기와는 달리 실제 달력 규칙 - 가변 월 길이, 윤년, 세기 규칙 - 을 적용하므로 윤년의 2 월이나 일광 절약 전환에 걸친 범위와 같은 가장자리 사례에서 결과가 정확합니다.

두 날짜 사이의 일수를 어떻게 계산합니까?

두 날짜를 모두 입력하세요 날짜 차이 계산기 그리고 일 카운트를 읽으십시오. 손으로 그것을 하는 것은 시작 달에 있는 나머지 일을 세고,사이에 가득 차있는 달을 추가하고,그 후에 끝 달에 일을 추가하고 - 끝 날짜 자체를 세는 것을 결정하기 위하여 upfront 그 마지막 결정,포함하는 대 배타적인 세는,대부분의 수동 계산이 1 에 의하여 틀리는 곳에 입니다.

날짜 사이의 날짜를 계산할 때 종료 날짜가 포함됩니까?

관례에 의하여,아니 - 표준 "difference"는 날짜 사이 간격을 세는 독점적입니다,그래서 월요일에서 금요일은 4 일입니다. 그러나 많은 현실 세계의 문맥 (약물 복용 일정,보장 기간,사건 길이) 는 포괄적으로 세어,5. 어느 쪽도 아닙니다 틀립니다; 그들은 다른 질문에 대답합니다. 항상 어떤 관례 you're 가 숫자가 계약 또는 청구서에 들어갈 때 사용하는지 진술하십시오.

왜 내 JavaScript 날짜 수학은 다른 대답을 제공합니까?

세 명의 일반적인 용의자: new Date("YYYY-MM-DD") bare 날짜 문자열을 UTC midnight 로 구문 분석하여 서부 시간대에서 날짜를 하루 이동; 밀리초 차이를 하루가 isn't 24 시간인 DST 전환에서 86,400,000 break 로 나눈 값; 및 레거시가 있는 월을 추가하는 경우 월말에 날짜 개체 오버플로 (1 월 31 일 + 1 개월 = 3 월 3 일). 원시 산술 대신 date-fns,Luxon 또는 Temporal API 와 같은 달력 인식 라이브러리를 사용합니다.

길이가 다른 달은 어떻게 계산되나요?

월 차이는 평균으로 일을 분할해서 달력에서,계산되지 않는다: 3 월 15 일에서 9 월 15 일은 it's 184 일 비록 정확하게 6 달이다. 모호함은 28 일 후에 닻 날짜로 나타난다 - 1 월 31 일 후에 1 달은 2 월 28 일 또는 29 일에 전형적으로 죄진다. 잘 행동한 청구서 발송 체계 죔쇠; 순진한 부호는 3 월 초에 넘쳐,검사할 가치가 있는 진짜 벌레이다.

윤년이 날짜 차이에 영향을 주나요?

예 - 윤년의 2 월 29 일에 걸쳐있는 모든 범위 (2024 또는 2028 과 같은) 는 공통 연도의 동일한 범위보다 하루 더 포함되며 올바른 계산기가 자동으로 설명합니다. 미묘한 규칙: 100 으로 나눌 수있는 연도는 400 으로 나눌 수없는 한 윤년이 아니므로 2000 은 윤년 이었지만 2100 won't be. 손으로 굴린 "divisible by 4" 수표는 정확히 그 해에 실패합니다.

시간대는 날짜 사이의 일 계산에 어떤 영향을 미치나요?

베어 날짜는 모든 시간대에서 다른 24 시간 창이므로 다른 영역의 두 시스템은 합법적으로 "today"에 대해 동의하지 않을 수 있습니다. is - 그리고 자정 근처의 타임스탬프는 해석에 사용된 영역에 따라 다른 달력 날짜에 떨어질 수 있습니다. 순수한 달력 날짜 차이의 경우 시간대 don't 적용; 타임스탬프 파생 날짜의 경우 먼저 다음과 같은 도구를 사용하여 두 타임스탬프를 동일한 영역으로 변환합니다 타임스탬프 변환기.

Toolz.dev 날짜 차이 계산기는 무료이며 비공개입니까?

두 가지 모두 그렇습니다. 가입하지 않고 브라우저에서 완전히 실행됩니다. 입력한 날짜는 업로드되거나 기록되거나 어디에나 저장되지 않습니다. 날짜 쌍은 고용 기간,의료 일정 또는 법적 기한과 같은 민감한 사실을 인코딩할 수 있으므로 보이는 것보다 더 중요합니다. there's 계산기가 서버 측에서 볼 필요가 있는 기술적인 이유는 없습니다.

Frequently Asked Questions

A date difference calculator computes the exact gap between two calendar dates, expressed in days, weeks, months, and years. Unlike mental math or naive millisecond subtraction, it applies real calendar rules — variable month lengths, leap years, century rules — so the result is correct across edge cases like February in a leap year or ranges spanning daylight saving transitions.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!