[Python & Ruby]
파이썬 datetime 날짜 차이 / 날짜 덧셈 / 날짜 파싱
Hevton
2022. 11. 26. 17:32
반응형
코테에서 자주 나오는 날짜 데이터 관련 문제를
파이썬을 이용하면 간단히 풀 수가 있다.
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']
이렇게 다뤄야 한다.
확실히 파이썬이 코딩테스트에서 유리한 방면이 많은 것 같긴 하다.
반응형