나이 계산기
생년월일로 정확한 나이, 띠, 다음 생일 계산
나이 계산기
나이 계산기는 무엇인가요?
나이 계산기는 생년월일을 기준으로 만 나이, 남은 개월과 일수, 살아온 총일수, 다음 생일까지 남은 기간을 보여 주는 도구입니다. 신청서 작성, 학교나 활동의 나이 제한 확인, 가족 기록 정리, 생일 준비처럼 손으로 계산하면 틀리기 쉬운 상황에 유용합니다. 나이는 단순히 현재 연도에서 출생 연도를 빼는 값이 아닙니다. 올해 생일이 지났는지, 윤년인지, 2월 29일 출생인지, 각 달의 날짜 수가 어떻게 다른지에 따라 결과가 달라집니다. 이 도구는 현재 브라우저 날짜를 기준으로 빠르게 확인하는 용도입니다. 공식 자격, 시험, 증명서, 근로 기준은 해당 기관이 정한 기준일을 따라야 합니다.
사용 방법
사용 방법
- 생년월일을 입력하세요
- '나이 계산'을 클릭하면 결과 패널이 업데이트됩니다
- 정확한 나이, 총 일수, 다음 생일, 별자리를 확인하세요
주의사항
- 원본 문서와 동일한 달력 체계를 사용하세요. 결과는 반올림된 만 나이가 아닌 경과된 전체 일수를 기준으로 합니다.
- 법률, 학교, 보험 서류용이라면 대상 시스템이 생일, 역년, 지역 행정 규정 중 어떤 기준으로 나이를 계산하는지 확인하세요.
활용 사례
기술 원리
만 나이 계산은 365.25일로 단순 나누기 아닌 달력 인식 방식의 뺄셈을 사용합니다. 알고리즘은 today.year - birth.year를 구한 뒤, 오늘의 (월, 일)이 출생 (월, 일)보다 이전이면 1을 뺍니다. 이는 민사 기록에서 사용하는 그레고리력 관례와 일치합니다: 1990-06-15에 태어난 사람은 정확히 2026-06-15 00:00(현지 시간)에 36세가 되며, 36 × 365.25일 후가 아닙니다. 남은 개월과 일수는 이전 달의 실제 길이(28~31일)를 사용하여 상위 단위에서 빌려오는 방식으로 계산하므로, 총 일수의 단순 모듈로 연산은 월 경계 근처에서 1일 오차가 발생합니다. 총 일수, 주, 시간은 밀리초 차(today.getTime() - birth.getTime())를 86,400,000 ms/일로 나누어 산출합니다. 계산기는 기기의 로컬 시간을 읽으므로 호스트의 IANA 시간대와 활성 DST 오프셋을 암묵적으로 상속합니다 — 일 단위 나이에는 적합하지만 DST 전환 시점에서 시간 수가 ±1시간 달라질 수 있습니다. JavaScript의 Date 객체는 0부터 시작하는 월(1월 = 0)을 반환하며, 이는 수동 구현에서 가장 흔한 버그 원인입니다. 결과가 DST에 영향을 받지 않아야 할 때는 Date.UTC()를 선호합니다. 십이지 띠는 (year - 4) mod 12로, 쥐, 소, 호랑이, 토끼, 용, 뱀, 말, 양, 원숭이, 닭, 개, 돼지의 정규 순서에 따라 결정됩니다(서기 4년 = 쥐띠). 엄밀히 말해 이 주기는 1월 1일이 아닌 음력 설날에 넘어가므로, 그레고리력 1월이나 2월 초에 태어난 사람은 전통 달력 기준으로 전년도 띠에 속할 수 있습니다. 윤일(2월 29일) 가장자리 사례에는 전 세계 공통 규칙이 없습니다: 영국 관습법과 영국 출생사망등록법은 윤년이 아닌 해에 생일을 3월 1일로 취급하는 반면, 미국과 호주의 많은 관할 구역은 2월 28일을 사용하므로, 표시되는 카운트다운은 기본값이며 해당 법령과 대조해야 합니다.
- 연도 차 알고리즘: years = today.year - birth.year - (today.MMDD < birth.MMDD ? 1 : 0), 윤년 이후에 드리프트하는 365.25일 근사를 회피
- 밀리초 연산: total days = floor((Date.now() - birthMs) / 86_400_000); 정밀도는 IEEE 754 배정밀도로 에포크 기준 ±100,000,000일 범위에서 약 ±0.5ms로 제한
- 그레고리력 윤년 규칙: 4로 나누어떨어지면 윤년, 단 100으로 나누어떨어지되 400으로 나누어떨어지지 않으면 평년(1900년은 평년, 2000년은 윤년); 평균 연장은 365.2425일, 365.25일이 아님
- 2월 29일 생일: 윤년이 아닌 해의 법적 생일은 관할권에 따라 다름(영국 관습법 및 1953년 출생사망등록법 §4에 따라 3월 1일; 미국 여러 주에서는 2월 28일; 뉴질랜드 및 여러 영연방 국가에서는 3월 1일); 도구는 기본값을 선택하고 두 후보 날짜를 모두 표시
- 십이지 띠: 동물 = ZODIAC[(year - 4) mod 12]; 음력 설은 1월 21일~2월 21일 사이이므로, 연초 그레고리력 출생은 완전한 정확도를 위해 음력 조회가 필요
- 시간대: Date.getFullYear/getMonth/getDate는 호스트 IANA 존을 읽으므로, UTC 자정 근처 출생 시 표시 나이가 하루 달라질 수 있음; DST 불변성이 필요할 때는 Date.UTC 변형 사용
- JavaScript 함정: 월은 0부터 시작(0 = 1월), new Date('YYYY-MM-DD')는 UTC로 파싱하는 반면 new Date('YYYY/MM/DD')는 로컬로 파싱, getDay는 일요일에 0 반환
예시
기본 나이 계산
생년월일 입력: 1990-06-15, 결과: 35세 11개월 18일 (2026-06-02 기준)생일 카운트다운
생년월일 입력: 1985-12-25, 다음 생일까지 남은 일수를 표시12간지 결과
출생 연도 2000년은 용띠, 1996년은 쥐띠로 표시자주 묻는 질문
정확한 나이는 어떻게 계산되나요?
생년월일부터 오늘까지를 기준으로 본 페이지는 연, 월, 일을 각각 구분해 표시하며 총 일수, 주, 시간, 분, 초까지 함께 보여줍니다. '연' 값은 생일(월·일)이 지나야만 1 증가하며, 이는 공식 문서에서 사용하는 만 나이 계산 방식과 동일합니다.
예상보다 한 살 적게 표시되는 이유는 무엇인가요?
올해 생일이 아직 지나지 않았을 가능성이 가장 큽니다. 본 계산기는 만 나이 기준을 따릅니다. 30번째 생일이 지나야 30세가 되며, 그해 1월 1일에 자동으로 30세가 되는 것이 아닙니다. 동아시아의 '세는나이(虛歲)'는 출생 시 1세를 부여하고 음력 설마다 한 살을 더하지만, 본 도구는 국제 표준 기준을 사용합니다.
'오늘'은 어느 시간대를 기준으로 하나요?
사용 중인 기기의 로컬 시간대를 사용합니다. 시간대를 이동하며 비행하는 경우 표시되는 '인생의 초' 값은 몇 시간 단위로 변할 수 있지만, 일과 월 단위는 달력 날짜를 비교하므로 영향을 받지 않습니다.
2월 29일 생일은 어떻게 처리되나요?
윤년이 아닌 해에는 기본적으로 3월 1일을 기념일로 처리합니다(이는 대부분의 법률 관할 지역과 일치합니다). 일부 지역에서는 2월 28일로 처리하기도 하니, 정확한 날짜가 법적으로 중요하다면 해당 지역의 규정을 확인하세요.
다음 생일은 언제인가요?
다음 생일 섹션에는 날짜와 남은 일수가 표시됩니다. 미리 계획할 수 있도록 요일도 함께 보여줍니다. 윤년이 아닌 해의 2월 29일생인 경우, 표시되는 3월 1일과 함께 다음 '실제' 2월 29일도 같이 안내합니다.
별자리와 띠도 함께 계산되나요?
네. 서양 별자리는 월과 일을 기준으로 계산됩니다. 띠는 출생 연도의 음력 설을 기준으로 계산하므로, 1월이나 2월 초 출생자는 양력 연도가 아닌 전년도 띠로 표시될 수 있으며 이는 정상입니다.
제 생년월일이 저장되거나 어디론가 전송되나요?
아니요. 계산은 전적으로 브라우저에서 수행됩니다. 페이지를 새로고침하면 입력값이 지워지며, 어떤 정보도 기록되거나 전송되지 않습니다.