생년월일로 만 나이를, 목표일로 D-day를, 두 날짜로 사이 일수를 계산합니다. 100일·1000일 기념일과 며칠 후 날짜, 주말을 뺀 영업일까지 함께 나옵니다. 날짜는 시간대의 영향을 받지 않도록 자정 기준으로 맞춰 셉니다.
만 나이는 생일이 지났으면 올해 − 출생연도, 아직 안 지났으면 올해 − 출생연도 − 1입니다. 연 나이는 생일과 상관없이 올해에서 출생연도를 뺀 값이에요.
앞으로 남은 날은 D-30, 이미 지난 날은 D+120으로 표시합니다. 기념일 표는 이 날짜를 시작일로 보고 계산해요.
두 날짜의 차이와, 시작일과 종료일을 모두 하루로 세는 초일 산입 일수를 함께 보여줍니다. 계약 기간이나 입원 일수처럼 양 끝을 세야 하는 경우에는 아래쪽 값을 쓰세요.
만 나이 통일 이후에도 취학·병역·술과 담배 구매는 연 나이 기준이 그대로 남아 있습니다. 기념일은 시작일을 1일로 세고 D-day는 기준일을 0으로 두기 때문에 두 방식은 정확히 하루 차이가 납니다. 계산기끼리 하루가 다르면 대부분 초일 산입 여부 차이이고, 영업일은 토·일요일만 빼며 공휴일은 빼지 않습니다.
2023년 6월 28일부터 행정·민사상 나이는 만 나이로 통일됐습니다. 법령이나 계약서, 공문서에 그냥 "나이"라고 적혀 있고 따로 정한 바가 없으면 만 나이로 읽습니다. 세는나이는 일상 대화에 남아 있을 뿐 법적인 기준은 아니에요.
다만 통일됐다는 말이 모든 나이가 만 나이가 됐다는 뜻은 아닙니다. 개별 법률이 나이 기준을 따로 정해둔 영역은 그대로 남았습니다. 대표적인 게 취학 연령입니다. 초등학교는 생일과 관계없이 같은 해에 태어난 아이들이 같은 해 3월에 함께 입학하므로, 사실상 출생연도로 묶입니다.
병역도 마찬가지입니다. 병역법은 나이를 그 나이에 도달하는 해의 1월 1일부터 12월 31일까지로 보기 때문에, 생일이 오기 전이라도 그 해가 되면 해당 연령으로 취급합니다. 병역판정검사 통지가 생일과 무관하게 나오는 이유예요.
술과 담배도 연 나이 기준입니다. 청소년보호법은 만 19세 미만을 청소년으로 보되, 만 19세가 되는 해의 1월 1일을 맞이한 사람은 제외합니다. 그래서 2007년생은 2026년 1월 1일이 되면 생일이 언제든 구매할 수 있습니다. 편의점에서 생년월일이 아니라 출생연도만 보고 판단하는 게 이 조항 때문입니다.
연인 사이의 100일과 수능 D-100은 세는 방법이 다릅니다. 한국에서 기념일을 셀 때는 시작일을 1일로 칩니다. 만난 날이 1일이니까 100일은 시작일에 99일을 더한 날입니다. 3월 1일에 만났다면 100일은 6월 8일이에요.
반면 D-day 표기는 기준일을 0으로 둡니다. 목표일 당일이 D-day, 그 하루 전이 D-1입니다. 같은 논리로 시작일에서 100일을 그대로 더하면 6월 9일이 나옵니다. 두 방식이 정확히 하루 차이 나는 이유가 이것이고, 위 계산기가 두 날짜를 나란히 보여주는 이유이기도 합니다.
어느 쪽이 맞다고 할 수는 없습니다. 기념일은 관행상 1일부터 세는 쪽이 널리 쓰이고, 시험이나 전역처럼 남은 날을 세는 상황에서는 0부터 세는 쪽이 자연스럽습니다. 상대와 날짜가 어긋난다면 대개 이 차이입니다.
첫째는 시간대입니다. 컴퓨터는 날짜를 밀리초 숫자로 다루는데, 서머타임이 있는 지역에서는 하루가 23시간이나 25시간이 되는 날이 생깁니다. 이 상태로 두 날짜를 빼서 24시간으로 나누면 값이 어긋납니다. 한국은 서머타임을 쓰지 않지만 해외에서 접속하면 겪을 수 있어요. 이 계산기는 연·월·일만 뽑아 UTC 자정으로 맞춘 뒤 세기 때문에 이 문제가 생기지 않습니다.
둘째는 윤년입니다. 4로 나뉘면 윤년이지만 100으로 나뉘면 평년, 그 중에서도 400으로 나뉘면 다시 윤년입니다. 2000년은 윤년이었고 1900년은 아니었습니다. 이걸 4년 규칙만으로 처리한 프로그램은 긴 기간에서 하루씩 틀립니다.
셋째가 가장 흔한데, "1개월 후"의 정의가 제각각입니다. 1월 31일의 한 달 뒤는 언제일까요. 그 달의 말일로 보면 2월 28일이고, 31일을 그냥 더하면 3월 3일이며, 날짜를 넘겨버리면 3월 2일이나 3일이 됩니다. 민법은 해당 날짜가 없는 달이면 그 달의 말일로 기간이 끝나는 것으로 정하고 있고, 이 계산기도 같은 방식을 씁니다.
일수는 두 날짜의 차이입니다. 3월 1일과 3월 2일 사이는 1일이고, 양 끝을 모두 세는 초일 산입 값은 2일입니다. 두 값을 모두 보여주니 필요한 쪽을 고르면 됩니다.
개월수는 시작일과 같은 날짜가 돌아오는 것을 1개월로 셉니다. 1월 15일부터 3월 14일까지는 1개월 27일이고, 3월 15일이 되어야 2개월입니다. 시작일에 해당하는 날짜가 없는 달이면 그 달의 말일을 기준으로 삼습니다. 1월 31일에서 한 달 뒤는 2월 28일, 윤년이면 2월 29일입니다.
영업일은 토요일과 일요일만 제외한 값입니다. 공휴일은 빼지 않습니다. 양 끝 날짜를 모두 포함해서 세므로, 월요일부터 금요일까지는 5영업일입니다.
거의 대부분 초일 산입 여부 때문입니다. 시작일을 하루로 셀 것인지 아닌지에 따라 정확히 하루가 달라집니다. 근무 일수나 입원 일수, 여행 일수처럼 "며칠 있었나"를 세는 계산은 양 끝을 모두 포함하고, "며칠 남았나"를 세는 계산은 포함하지 않습니다. 위 결과에서 두 값을 모두 보여주니 어느 쪽인지 확인하고 쓰세요.
일부러 빼지 않았습니다. 한국의 공휴일은 설과 추석이 음력을 따라 매년 움직이고, 대체공휴일이 요일에 따라 붙었다 떨어지며, 선거일이나 임시공휴일이 그때그때 지정됩니다. 미래 연도의 공휴일을 브라우저 안에서 확정할 방법이 없어요. 그래서 토·일만 제외한 값을 정확히 계산해 주고, 공휴일은 직접 빼도록 두었습니다. 관공서 민원 처리기간처럼 공휴일을 빼야 하는 계산이라면 해당 연도의 공휴일 수를 따로 확인하세요.
평년에는 생일이 없으니 나이가 언제 오르는지가 문제가 됩니다. 민법의 기간 계산 규정은 해당 날짜가 없는 달이면 그 달의 말일로 기간이 끝난다고 정합니다. 2월 28일이 끝나는 시점에 한 살이 차는 셈이라, 이 계산기는 평년에는 3월 1일부터 한 살을 더합니다. 2월 28일에 올린 것으로 보는 계산기도 있어서 그날 하루는 결과가 다를 수 있습니다. 윤년에는 당연히 2월 29일이 생일입니다.
민법은 기간을 일·주·월·연으로 정한 때 첫날은 세지 않는 것을 원칙으로 합니다. 다만 그 기간이 오전 0시부터 시작하면 첫날을 셉니다. 나이는 별도 규정이 있어서 출생일을 포함해 계산해요. 계약서에 "계약일로부터 30일 이내"라고 적혀 있다면 보통 계약일 다음 날부터 세는 것이고, "3월 1일부터 3월 31일까지"처럼 기간이 명시돼 있으면 양 끝을 모두 포함합니다. 다툼의 소지가 있으면 계약서에 기산일을 못 박아두는 게 안전합니다.