datetime.time에 n초만큼 더하려면 어떻게 써야 될까요?
조회수 4664회
datetime.time에 n초만큼 더하려면 어떻게 써야 될까요?
11:34:59 + 3 = 11:35:02
같이 바로바로 더해주려면 어떻게 써야할지 궁금합니다. 이렇게 하면 될것같은 방법으로 시도해봤는데 안되서 어떻게 해야될지 멘붕상태입니다 ㅜㅜ
소스코드1 - 그냥 3 더하기
import datetime
mytime = datetime.time(11, 34, 59)+3
print(mytime)
에러내용1
mytime = datetime.time(11, 34, 59)+3
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'int'
소스코드2 - timedelta로 더하기
import datetime
mytime = datetime.time(11, 34, 59)+datetime.timedelta(0,3)
print(mytime)
에러내용2
mytime = datetime.time(11, 34, 59)+datetime.timedelta(0,3)
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.timedelta'
소스코드3 - time객체끼리 더하기
import datetime
mytime = datetime.time(11, 34, 59)+datetime.time(0,0,3)
print(mytime)
에러내용3
mytime = datetime.time(11, 34, 59)+datetime.time(0,0,3)
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.time'
1 답변
-
보통
- time(11, 34, 59)에 dummy data를 추가해서 datetime객체를 만듦
- 1과 timedelta(0,3)를 연산
- 2에서 datetime에서 time만 뽑아냄
같은 단계로 실행합니다.
import datetime a = datetime.datetime(100,1,1,11,34,59) b = a + datetime.timedelta(seconds=3) print a.time() print b.time()
결과 :
11:34:59 11:35:02
좀 더 메뉴얼하게 함수를 정의한다고 하면
import datetime def addSecs(tm, secs): fulldate = datetime.datetime(100, 1, 1, tm.hour, tm.minute, tm.second) fulldate = fulldate + datetime.timedelta(seconds=secs) return fulldate.time() a = datetime.datetime.now().time() b = addSecs(a, 300)
댓글 입력