개발 공부/파이썬

[파이썬] 날짜 함수 strptime, strftime, relativedelta 활용해서 다음 년도, 월, 일 구하기

가이윤 2022. 12. 2. 10:37

프로젝트 하면서 날짜를 활용해서 코드를 작성해야 하는 경우가 있었는데, 날짜 함수를 사용하지 않고 코드를 작성하는 경우에 윤년의 경우나 달의 마지막 일자 다음 날짜인 경우 등도 처리 해야 하기 때문에 코드가 길어졌었다.

그래서 비효율적인거 같아서 날짜 함수를 사용하니 간단하게 해결됐다.

3가지의 경우를 코드로 예시를 들어봤는데, (주석) 년도는 특정 년도의 다음 년도를 구하는 코드고, 년월은 해당 년도의 마지막 달인 12월일 때 다음 월이면 년도도 같이 변경되는 경우다.

그리고 마지막으로 해당 년도의 12월 31일에서 다음 일자는 년도 월까지 다 변경되는 경우를 구하는 코드이다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from datetime import datetime
from time import strftime
from dateutil.relativedelta import relativedelta
 
# 년도
f_year = '2022'
f_next_year = datetime.strptime(f_year,'%Y'+ relativedelta(years=1# 파일명 년도의 다음 년도
f_next_year = f_next_year.strftime('%Y')
print(f_next_year)
 
# 년월
f_month = '202212'
f_next_month = datetime.strptime(f_month,'%Y%m'+ relativedelta(months=1# 파일명 년월의 다음 월
f_next_month = f_next_month.strftime('%Y%m')
print(f_next_month)
 
# 년월일
f_day = '20221231' 
f_next_day = datetime.strptime(f_day,'%Y%m%d'+ relativedelta(days=1# 파일명 년월일의 다음 일
f_next_day = f_next_day.strftime('%Y%m%d')
print(f_next_day)
cs