초를 받아서 시:분:초로 계산해 주는 메소드도 있을까요?


발생하는 문제 및 실행환경

팀프로젝트에서 다른 사람이 짠 함수의 return값을 인자로 받아서 다른 일을 해야합니다.

문제는 이 함수가 전부 초 단위로 return해 버리고 제 함수는 시, 분, 초로 인자를 받아야 작동합니다. 소스를 지금와서 고치기는 힘들구요.

python에서 time관련 모듈을 별로 다뤄 본 적은 없지만 어지간한건 다 구현되 있는 걸로 아는데 이런 기능도 있나요?

  • 2016년 02월 16일에 작성됨

조회수 295


1 답변


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

하루를(24시) 넘지 않는 다고 하면

datetime.timedelta를 쓰면 됩니다

import datetime
mydelta = datetime.timedelta(seconds=666)
mytime = datetime.datetime.min + mydelta #datetime.datetime은 년/월/일까지 계산하게 돼서 24시가 넘는 h는 일(day)로 변환됩니다.
h, m, s = mytime.hour, mytime.minute, mytime.second

하루를 넘긴다고 하면

divmod()를 써서 24시가 1일로 변환되지 않게 처리합니다. 몫과 나머지를 이용해 수학적으로 계산한 결과를 처리해야 합니다.

m, s = divmod(seconds, 60)
h, m = divmod(m, 60)
print "%d:%02d:%02d" % (h, m, s)
  • 2016년 02월 16일에 작성됨

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

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