날짜 계산기 — 두 날짜 사이, 더하고 빼고, 디데이
두 날짜 사이가 며칠인지, 어떤 날의 몇 개월 뒤가 언제인지, 오늘이 며칠째인지를 한 화면에서 계산합니다. 달마다 다른 일수와 윤년, 그리고 '몇 일째'를 세는 관행까지 맞춰서 처리합니다.
날짜 계산은 쉬워 보이지만 달마다 길이가 달라서 함정이 많습니다. 예전 버전에는 실제로 두 가지 오류가 있었습니다. 1월 31일에 1개월을 더하면 3월 3일이 나왔습니다. 자바스크립트가 '2월 31일'을 만든 뒤 넘치는 사흘을 3월로 굴려 버렸기 때문입니다. 그리고 1월 31일부터 3월 1일까지의 차이를 '1개월 -2일'이라고 표시했습니다. 한 달을 30일로 빌려 왔는데 2월이 28일뿐이라 음수가 남은 것입니다.
지금은 두 계산을 서로의 역연산으로 정의했습니다. 더하기는 그 달에 없는 날짜를 말일로 맞추고, 차이는 '더하기로 다시 그 날짜에 정확히 도달하는 년·개월·일'을 찾습니다. 무작위 날짜 5,000쌍으로 두 계산이 항상 일치하는지 확인했습니다. 결과 날짜와 요일은 페이지 언어에 맞춰 표시되며, 예전처럼 한국어 화면에 영어 날짜가 나오지 않습니다.
세 가지 모드
| 모드 | 입력 | 무엇을 알려주나 |
|---|---|---|
| 날짜 차이 | 두 날짜 | 년·개월·일 분해, 총 일수, 주+일, 총 개월 수, 양 끝을 모두 셌을 때의 일수 |
| 날짜로부터 | 기준일 + 더하거나 뺄 년·개월·일 | 결과 날짜와 요일, 기준일에서 며칠 떨어졌는지, 오늘 기준 디데이 |
| 디데이 | 시작한 날 | 오늘이 며칠째인지, 100일·200일·1,000일과 주년 기념일 날짜와 요일 |
월말에 개월을 더할 때
1월 31일의 한 달 뒤는 2월 28일입니다(윤년이면 29일). 2월에는 31일이 없으니 그 달의 마지막 날로 맞추는 것이 달력 프로그램의 표준 규칙이고, 계약서의 '1개월 후'도 보통 이렇게 읽습니다. 말일로 맞춘 경우에는 결과 아래에 그 사실을 적어 두니, 원하던 날짜가 맞는지 바로 확인할 수 있습니다.
더하는 순서도 결과를 바꿉니다. 이 계산기는 년과 개월을 먼저 더해 말일로 맞춘 다음 일수를 더합니다. 그래서 1월 31일 + 1개월 1일은 2월 28일에서 하루 더한 3월 1일입니다. 일수를 먼저 더했다면 2월 1일의 한 달 뒤인 3월 1일로 같지만, 30일을 더하는 경우처럼 순서에 따라 답이 갈리는 조합도 있습니다. 세금·계약 기한처럼 정확도가 중요한 계산이라면 어느 순서인지 확인하고 쓰세요.
윤년은 4로 나누어떨어지되 100의 배수는 제외하고, 400의 배수는 다시 포함합니다. 2000년과 2024년은 윤년이고 1900년과 2100년은 아닙니다. 2월 29일에 1년을 더하면 2월 28일이 됩니다.
시작일을 세는가, 세지 않는가
차이 모드의 기본값은 시작일을 세지 않는 방식입니다. 같은 날은 0일, 하루 뒤는 1일입니다. 배송 기간이나 계약 기한이 이 방식을 씁니다. 반대로 호텔 숙박 일수나 여행 일수처럼 양 끝을 모두 세는 계산도 있어서, 결과 아래에 '시작일과 종료일을 모두 세면 며칠'인지를 함께 적어 둡니다. 둘 중 무엇이 필요한지만 정하면 숫자를 다시 계산할 필요가 없습니다.
한국과 일본의 기념일 세기는 또 다릅니다. 사귄 날, 입사한 날, 아이가 태어난 날을 1일째로 세기 때문에 100일은 시작일에서 99일 뒤입니다. 시작일을 1일째로 세지 않고 100을 그대로 더하면 하루가 밀립니다. 디데이 모드는 이 관행을 그대로 따르며, 주년은 일수가 아니라 같은 날짜로 계산합니다. 3년째 되는 날은 1,095일 뒤가 아니라 3년 뒤 같은 날짜입니다.
이렇게 쓰면 편합니다
- •각 날짜 칸 옆의 '오늘' 버튼을 누르면 오늘 날짜가 채워집니다. 입력 아래에는 그 날의 요일과 오늘 기준 디데이가 함께 표시됩니다.
- •마감일에서 거꾸로 세려면 '날짜로부터' 모드에서 '빼기'를 고르세요. 제출일 기준 2개월 전이 무슨 요일인지 바로 나옵니다.
- •주말이나 공휴일을 빼야 하는 계산은 영업일 계산기를 쓰세요. 이 도구는 달력의 모든 날을 셉니다.
- •만 나이는 나이 계산기가 따로 있습니다. 차이 모드의 '년' 값과 계산 방식은 같습니다.
자주 묻는 질문
1개월 더했는데 일자가 달라지는 이유는 뭔가요?
그 달에 같은 날짜가 없기 때문입니다. 1월 31일 + 1개월은 2월 28일(윤년이면 29일)로 맞춥니다. 말일로 맞춘 경우 결과 아래에 안내가 표시됩니다.
시작일이 0일째인가요, 1일째인가요?
차이 모드는 시작일을 세지 않아 같은 날이 0일입니다. 양 끝을 모두 세는 일수도 함께 보여 줍니다. 디데이 모드는 한국식으로 시작일을 1일째로 셉니다.
1900년 이전 날짜도 되나요?
됩니다. 지금의 그레고리력을 과거로 그대로 확장해 계산합니다. 1582년 이전의 실제 역사 날짜는 율리우스력을 쓰던 시기라 사료의 날짜와 다를 수 있습니다.
시간대에 영향을 받나요?
받지 않습니다. 시각 없이 달력 날짜만으로 계산하므로 서울에서 보든 뉴욕에서 보든 같은 결과가 나옵니다. '오늘' 버튼만 기기의 시간대를 따릅니다.
입력한 날짜가 저장되나요?
저장되지 않습니다. 계산은 모두 브라우저 안에서만 이루어집니다.
