Вычислить разницу с datetime.now (). Time () - PullRequest
0 голосов
/ 08 июля 2020

Я пытаюсь написать код, который позволит мне вычислить разницу во времени между двумя переменными, установленными в два результата datetime.now (). Time (). В конце концов, я хочу сделать так, чтобы, если разница превышает определенное количество минут, я мог предпринять какие-то действия, но, к сожалению, не могу перейти к этому, пока не увижу разницу.

В настоящее время я есть нижеприведенное, но я получаю сообщение об ошибке (TypeError: неподдерживаемые типы операндов для -: 'datetime.time' и 'datetime.time'). Я попытался выполнить преобразование в целые числа, но все равно получаю сообщение об ошибке.

def check_recent_activity():
    current_time = datetime.now().time()
    time.sleep(5) # temporary, to ensure times are different enough. In actual functionality, one datetime will be a value in a dict
    current_time_2 = datetime.now().time()
    difference = current_time - current_time_2
    print("The difference between time 1 and 2 is: " + difference)

Ответы [ 3 ]

1 голос
/ 08 июля 2020

Вы не можете вычесть два экземпляра datetime.time, но можете вычесть два экземпляра datetime.datetime. Это означает использование datetime.now() вместо datetime.now().time().

def check_recent_activity():
    current_time = datetime.now()
    time.sleep(5) # temporary, to ensure times are different enough. In actual functionality, one datetime will be a value in a dict
    current_time_2 = datetime.now()
    difference = current_time_2 - current_time
    print("The difference between time 1 and 2 is:", difference)
1 голос
/ 09 июля 2020

Вы можете использовать объекты time, чтобы делать то, что вы хотите:

import time

def check_recent_activity():
    current_time = time.time()
    time.sleep(5) # temporary, to ensure times are different enough. In actual functionality, one datetime will be a value in a dict
    current_time_2 = time.time()
    difference = current_time_2 - current_time
    print("The difference between time 1 and 2 is: " + str(difference))
             
check_recent_activity()
1 голос
/ 08 июля 2020

Вы просто не можете вычесть time объектов, они должны быть datetime объектами. Вы можете получить свой объект pbject datetime с помощью функции datetime.datetime.now() или объединить это время с датой с помощью функции combine(). Тогда при вычитании двух объектов datetime вы получите объект timedelta.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...