본문 바로가기
[Python & Ruby]

파이썬 datetime 날짜 차이 / 날짜 덧셈 / 날짜 파싱

by Hevton 2022. 11. 26.
반응형

 

코테에서 자주 나오는 날짜 데이터 관련 문제를

파이썬을 이용하면 간단히 풀 수가 있다.

from datetime import datetime
from datetime import timedelta


today = "2022:11:26:14:08:25"

# 날짜 파싱
today_par = datetime.strptime(today, '%Y:%m:%d:%H:%M:%S')

print(today_par.year) # 2022
print(today_par.month) # 11
...



# 날짜 차이

temp = "2022:11:24:10:08:21"
temp_par = datetime.strptime(temp, '%Y:%m:%d:%H:%M:%S')

print((today_par - temp_par).day) # 날짜 차이, day 형식으로

print(today_par.day - temp_par.day) # 각 일의 개념으로 차이


# 날짜 덧셈
# 날짜 덧셈은 단순 + 로 구현되지 않는다.

td = timedelta(days=int(temp_par.day), hours=int(temp_par.hour), minutes=int(temp_par.miniute), seconds=int(temp_par.second))

print(today + td) # 하나의 날짜를 timedelta로 변환한 뒤에 더해주어야 한다.




# 주의할 점

datetime.strptime(str, '%Y:%m:%d:%H:%M:%S')
# 어쨌든 datetime에 담기는 것이기에, date가 유효하지 않으면 (= 없는날짜면) 담아낼 수 없다.
# 따라서 str이 0000:00:00:00:00:00 이러면 이런 날짜는 없기에 담아낼 수 없다.
# 만약 특정 파싱된 날짜를 더하고 싶으면, 
s = '0000:00:00:00:00:00'
li = s.split(':') # li = ['0000', '00', '00', '00', '00', '00']

이렇게 다뤄야 한다.

 

확실히 파이썬이 코딩테스트에서 유리한 방면이 많은 것 같긴 하다.

반응형