• 2 min read
Python에서 나이를 계산하는 방법(datetime 및 dateutil 예제)
Python에서 생년월일로부터 나이를 계산하는 방법을 알아보세요. 완료된 연도, 특정 날짜 기준의 연령, 윤년 및 시간대와 같은 일반적인 함정이 포함됩니다.
Python에서 나이를 계산하는 방법(datetime 및 dateutil 예제)
필요한 경우파이썬으로 나이 계산하기생년월일부터 가장 올바르게 해야 할 것은 연령을 정의하는 것입니다. 대부분의 앱에는완료된 년(만난 생일), 단지 연도의 차이가 아닙니다.
1) 완료 연도(안전한 정의)
이는 생년월일(DOB) 이후의 전체 연도 수를 반환합니다. 현재 연도에 생일이 아직 발생하지 않은 경우 1을 뺍니다.
from datetime import date
def age_years(dob: date, as_of: date | None = None) -> int:
if as_of is None:
as_of = date.today()
years = as_of.year - dob.year
before_birthday = (as_of.month, as_of.day) < (dob.month, dob.day)
return years - 1 if before_birthday else years
print(age_years(date(2000, 10, 5), date(2026, 2, 26)))
2) 특정 날짜 기준의 나이(오늘뿐만 아니라)
많은 사용 사례에는 보험 가격, 자격 확인, 학교 마감, 보고서 등 "현재" 날짜가 필요합니다. 위의 기능은 이미 다음을 통해 지원됩니다.as_of.
3) 정확한 스타일 출력(연도 및 월)
"25년 4개월"과 같은 출력을 원하면 다음을 사용하십시오.dateutil.relativedelta(월 길이를 올바르게 처리합니다).
from datetime import date
from dateutil.relativedelta import relativedelta
def age_ym(dob: date, as_of: date | None = None):
if as_of is None:
as_of = date.today()
rd = relativedelta(as_of, dob)
return rd.years, rd.months
print(age_ym(date(2000, 10, 5), date(2026, 2, 26)))
4) 일반적인 함정(및 이를 방지하는 방법)
- 윤일 생일:윤년이 아닌 해의 2월 29일을 어떻게 처리할지 결정하세요. 많은 시스템은 2월 28일 또는 3월 1일을 사용합니다. 라이브러리 동작이 중요하므로 테스트해 보세요.
- 날짜/시간대:DOB의 경우 선호
date~ 위에datetime. 날짜/시간을 사용해야 하는 경우 먼저 동일한 시간대로 정규화하세요. - 미래 DOB 또는 누락된 값:부정적인 연령이나 충돌을 방지하기 위해 입력을 검증합니다.
빠른 확인(코드 없음)
하나의 결과만 빨리 필요하다면 온라인 계산기를 사용하세요.온라인으로 나이 계산하기.
관련 가이드
FAQ
때때로 (today.year - dob.year)가 잘못된 이유는 무엇입니까?
왜냐하면 올해 생일이 이미 지났는지 여부를 무시하기 때문입니다. 생일 이전에는 1을 빼야 합니다.
생년월일에 날짜/시간 또는 날짜를 사용해야 합니까?
사용date가능하다면. DOB는 역일이며 시간대에 따라 날짜/시간이 날짜별로 바뀔 수 있습니다.