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'

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)
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.