군침이 싹 도는 코딩

Python 특정일로부터 원하는 날짜 계산하기 본문

Python/Basic

Python 특정일로부터 원하는 날짜 계산하기

mugoori 2022. 11. 22. 12:22

 문자열로 되어 있는 날짜를 파이썬이 계산할수 있게 바꾸는법

from dateutil.parser import parse # 라이브러리 실행
date_str='2022-06-30'
date_str.weekday()
>>> AttributeError: 'str' object has no attribute 'weekday'
# weekday는 문자열의 함수가 아니라 AttributeError가 생긴다.
someday=parse(date_str)
someday
>>> datetime.datetime(2022, 6, 30, 0, 0)
someday.weekday()
>>> 3

# parse 함수로 바로 변환할수도 있다.
parse('2022/06/30 14:25')
>>> datetime.datetime(2022, 6, 30, 14, 25)

 

 오늘 날짜를 확인하는 법

datetime.today()
today
>>> datetime.datetime(2022, 11, 22, 12, 4, 29, 84582)

 

 

 오늘 날짜를 기준으로 이후를 계산

from dateutil.relativedelta import relativedelta # 라이브러리 실행
today+relativedelta(days=+26) # relativedelta 함수를 사용해 날짜 계산
>>> datetime.datetime(2022, 12, 18, 12, 4, 29, 84582)

 

 

 오늘 날짜를 기준으로 이전을 계산

today+relativedelta(days=-47)
>>> datetime.datetime(2022, 10, 6, 12, 4, 29, 84582)

 

 

● 특정 날짜를 기준으로 날짜 계산 하는법

parse('2022-05-22')+relativedelta(days=100) # parse는 문자열을 입력하면 자동으로 날짜 데이터로 바꿔주는 함수이다
>>> datetime.datetime(2022, 8, 30, 0, 0)

parse('2022-05-22')+relativedelta(year=+1,months=+3,days=+8,hours=+13)
>>> datetime.datetime(1, 8, 30, 13, 0)

 

 

두 날짜의 차이를 구하는법

start_day = parse('2022-01-23')
end_day = date.today()
start_day
>>> datetime.datetime(2022, 1, 23, 0, 0)
end_day
>>> datetime.date(2022, 11, 22)
relativedelta(end_day,start_day)
>>> relativedelta(months=+9, days=+30)

 

 

문자열 데이터(한글)를 날짜 데이터로 바꾸는법

date_str='2022년 05월 04일'
parse(date_str) # parse함수는 국제표준 isoformat만 바꿔준다.
>>> ParserError: Unknown string format: 2022년 05월 04일
datetime.strptime(date_str,'%Y년 %m월 %d일')
>>> datetime.datetime(2022, 5, 4, 0, 0)

 

'Python > Basic' 카테고리의 다른 글

asyncio  (0) 2023.08.08
Python 함수 메모리 작동 방식에 대한 문제  (0) 2022.11.22
Python library - datetime datetime  (0) 2022.11.22
Python library - datetime time  (0) 2022.11.22
Python library - datetime date  (0) 2022.11.22