«Я пытаюсь выяснить, прошло ли [более] одного часа с момента создания объекта токена»
Проблема заключается в том, что вы добавляете час к текущему времени вместо вычитая час. Вы можете вычесть час, передав -1
методу AddHours
.
Тогда есть также проблема, что аргументы находятся в неправильном порядке при вызове Compare
, потому что метод Compare
вернет 1
если первый аргумент больше второго. Поскольку мы хотим знать, больше ли значение "один час go", чем время создания токена, мы должны сначала передать это значение при вызове Compare
:
var result = DateTime.Compare(machineDate.AddHours(-1), tokenDate);
Другой (предпочтительный) вариант - просто использовать оператор >
и писать код так, как вы пишете в Engli sh. Другой способ сказать «Я пытаюсь выяснить, прошло ли [более] одного часа с момента создания объекта токена» :
"Является ли текущее время больше, чем сумма времени создания токена плюс один час "
, который можно записать в виде:
if (machineDate > tokenDate.AddHours(1))