파이썬 datetime 과 date 클래스 변경에 따른 결과값의 차이

조회수 113회

크리스마스까지 남은 시간을 재는 프로그램입니다.

import datetime as dt
a=dt.datetime.today()
print(f'오늘은 {a.year}년 {a.month}월 {a.day}일 입니다.')
xmas=dt.date(2022,12,25)
su=xmas - dt.datetime.now()
print('남은 시간 ',su.days,su.seconds//3600)

----------------------------------------------------------------------------------------
오늘은 2022년 6월 12일 입니다.
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_11004/4119043594.py in <module>
      3 print(f'오늘은 {a.year}년 {a.month}월 {a.day}일 입니다.')
      4 xmas=dt.date(2022,12,25)
----> 5 su=xmas - dt.datetime.now()
      6 print('남은 시간 ',su.days,su.seconds//3600)

TypeError: unsupported operand type(s) for -: 'datetime.date' and 'datetime.datetime'

이렇게 타입 에러로 datetime.date 와 datetime.datetime에선 - 를 못 쓴다고 오류가 뜬 것 아닌가요?

근데 밑에 코드에서 datetime.datetime을 쓰면 실행되는데 왜 이런지 궁금합니다!

import datetime as dt
a=dt.datetime.today()
print(f'오늘은 {a.year}년 {a.month}월 {a.day}일 입니다.')
xmas=dt.datetime(2022,12,25)
su=xmas - dt.datetime.now()
print('남은 시간 ',su.days,su.seconds//3600)
---------------------------------------------------------------------------------------
오늘은 2022년 6월 12일 입니다.
195 7
---------------------------------------------------------------------------------------

답변 감사합니다!

  • date 객체에는 시간 정보가 없습니다. 초보 2022.6.13 10:48

1 답변

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

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

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.