·2분 읽기

날짜 차이 계산 실전 — JavaScript Python D-day 함수 모음

두 날짜 사이의 일수, 시간, 분 차이를 정확히 계산하는 JavaScript/Python 코드와 D-day, 근무일수, 남은 시간 계산 실전 예시예요.

날짜 차이 계산 실전 — JavaScript Python D-day 함수 모음
🕐
타임스탬프 변환기 바로 사용하기
Unix 타임스탬프와 날짜를 변환하세요

날짜 계산이 헷갈리는 이유

365일로 나누면 되지 않냐고요? 윤년, 월별 일수 차이, 서머타임, 타임존이 엮이면 단순 뺄셈이 틀려요. 예: 2024-02-28과 2024-03-01 사이는 며칠? 윤년이라 2일입니다. 2023년이면 1일이에요. 코드에서 이런 케이스를 수동 처리하면 버그가 쌓여요.

JavaScript — 기본 일수 계산

function diffDays(a, b) { const MS = 1000 * 60 * 60 * 24; return Math.floor((new Date(b) - new Date(a)) / MS); } diffDays('2026-01-01', '2026-04-18'); // 107 주의: Date 생성 시 YYYY-MM-DD는 UTC로 해석돼요. 로컬 자정 기준이 필요하면 T00:00:00을 붙이세요.

Python — 정확한 일수 계산

from datetime import date, datetime d1 = date(2026, 1, 1) d2 = date(2026, 4, 18) print((d2 - d1).days) # 107 시간까지 포함한 차이: dt1 = datetime(2026, 4, 18, 9, 0) dt2 = datetime(2026, 4, 18, 17, 30) diff = dt2 - dt1 print(diff.total_seconds() / 3600) # 8.5시간

D-day 함수 — 자주 쓰는 패턴

생일, 마감일까지 남은 일수를 표시하는 함수예요. JavaScript: function dDay(target) { const now = new Date(); now.setHours(0,0,0,0); const t = new Date(target); t.setHours(0,0,0,0); const days = Math.ceil((t - now) / (1000*60*60*24)); if (days > 0) return 'D-' + days; if (days === 0) return 'D-Day'; return 'D+' + Math.abs(days); } Python: from datetime import date def d_day(target): days = (target - date.today()).days if days > 0: return 'D-' + str(days) if days == 0: return 'D-Day' return 'D+' + str(abs(days)) 시간 단위까지 신경 쓰지 않으려면 시분초를 0으로 리셋하는 게 안전해요.

근무일수 계산 (주말 제외)

Python은 표준 라이브러리로 간단해요. import numpy as np np.busday_count('2026-01-01', '2026-05-01') # 86일 공휴일 제외하려면 holidays 라이브러리를 써요. import holidays kr_holidays = holidays.KR(years=2026) np.busday_count('2026-01-01', '2026-05-01', holidays=list(kr_holidays.keys())) JavaScript는 한 줄로는 안 되고 for 루프나 date-fns 라이브러리를 써야 해요.

타임존과 서머타임 주의점

국내 개발이면 대부분 KST(UTC+9) 하나라 문제 없어요. 해외 사용자가 섞이면 다음 규칙이 안전합니다. 1. 서버는 UTC로 저장·계산 2. 클라이언트 표시 때만 로컬 타임존으로 변환 3. 서머타임 있는 지역은 date-fns-tz 또는 Luxon 같은 라이브러리 필수 뉴욕 사용자에게 3시간 후 약속을 계산할 때 서머타임 경계에 걸리면 Date 객체만으로는 틀립니다.

Toolkio Timestamp Converter로 빠른 확인

특정 Unix 타임스탬프가 언제였는지, 또는 두 시점의 차이가 얼마인지 한 번에 보여줘요. 정규 라이브러리 설치 전 빠른 확인이 필요할 때 유용합니다.

지금 바로 타임스탬프 변환기를 사용해보세요

무료이며, 브라우저에서 바로 실행됩니다.

타임스탬프 변환기