datetime.time에 n초만큼 더하려면 어떻게 써야 될까요?


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'
  • 2016년 02월 15일에 작성됨

조회수 186


1 답변


좋아요
0
싫어요
채택취소하기

보통

  1. time(11, 34, 59)에 dummy data를 추가해서 datetime객체를 만듦
  2. 1과 timedelta(0,3)를 연산
  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)
  • 2016년 02월 15일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close