Развиваю полицейского бота, но мне трудно сравнивать два раза друг с другом - PullRequest
1 голос
/ 03 апреля 2020

Вот что я сделал:

#!C:\Users\matej\PycharmProjects\SupremeBot\venv\Scripts\python.exe

import datetime
import webbrowser


#ADDING "SHOW WHEN THE BOT STARTS FUNCTION"

itstime = datetime.time(12, 0,)
now = datetime.datetime.today()


print("This is time when the program was started.:")
print(now)
print("This is when it is time to cop!!:")
print(itstime)





#BOT WEB OPEN FUNCTIONALITY"



if now < itstime:
    pass


if now == itstime:
    webbrowser.open("http://www.supremenewyork.com")

У меня сейчас проблемы со временем:

C:\Users\matej\PycharmProjects\SupremeBot\venv\Scripts\python.exe C:/Users/matej/PycharmProjects/SupremeBot/SupremeBot.py
This is time when the program was started.:
2020-04-03 21:11:03.697831
This is when it is time to cop!!:
12:00:00
Traceback (most recent call last):
  File "C:/Users/matej/PycharmProjects/SupremeBot/SupremeBot.py", line 26, in <module>
    if now < itstime:
TypeError: '<' not supported between instances of 'datetime.datetime' and 'datetime.time'

Process finished with exit code 1

Как это решить? Есть идеи, как сделать его лучше, быстрее или просто стабильнее? Буду благодарен за любые ответы.

1 Ответ

0 голосов
/ 03 апреля 2020

Проблема в том, что вы сравниваете «полную» отметку даты с отметкой времени, что не имеет смысла. Подумайте об этом так: что важнее: вторник, 1 марта 2020 года, в 12:30 или 12:40? Это не имеет никакого смысла.

Эта строка:

TypeError: '<' not supported between instances of 'datetime.datetime' and 'datetime.time'

говорит вам, что вы сравниваете объекты другого типа.

Это делает , однако, имеет смысл сравнивать 12:30 и 12:40 - так что, в основном, сравнивайте только временные метки. Если вы хотите сравнить только часть времени с датой, см. Приведенные ниже вопросы и ответы, чтобы получить только часть времени с отметкой даты:

Python: преобразование из `datetime.datetime` в` time.time`

...