Python에서 현재 날짜를 기준으로 6개월 후의 날짜를 계산하려면 datetime 모듈의 timedelta 함수를 활용할 수 있습니다.
timedelta를 사용한 기본적인 방법
timedelta는 날짜나 시간의 차이를 나타내는 객체로, 특정 일수를 더하거나 빼는 데 사용됩니다. 한 달을 약 30일로 가정하여 6개월을 180일로 계산하면 다음과 같이 작성할 수 있습니다.
>>> import datetime
>>> today = datetime.date.today()
>>> print(today)
2017-09-12
>>> six_months_later = today + datetime.timedelta(days=30*6)
>>> print(six_months_later)
2018-03-11
주의할 점: timedelta 방식의 한계
위 방법은 간단하지만, 실제 달력상의 개월 수와 정확히 일치하지 않을 수 있습니다. 월마다 일수가 다르기 때문에(28일, 30일, 31일) 단순히 180일을 더하면 원하는 결과와 어긋날 수 있습니다.
더 정확한 방법: dateutil 라이브러리 사용
달력 기준으로 정확하게 개월을 더하려면 python-dateutil 패키지의 relativedelta를 사용하는 것이 좋습니다.
>>> from datetime import date
>>> from dateutil.relativedelta import relativedelta
>>> today = date.today()
>>> six_months_later = today + relativedelta(months=6)
>>> print(six_months_later)
2025-03-12
python-dateutil은 다음 명령어로 설치할 수 있습니다.
pip install python-dateutil
정리
- 간단한 근사치 계산에는 datetime.timedelta(days=180)을 사용할 수 있습니다.
- 달력 기준으로 정확한 개월 계산이 필요하다면 dateutil.relativedelta(months=6)를 사용하는 것이 가장 안전합니다.
- 윤년이나 월별 일수 차이까지 고려해야 하는 프로젝트라면 반드시 relativedelta 방식을 권장합니다.