Я не хочу, чтобы пользователь сообщал дату или время.
Как я могу сравнить, если введенные дата и время МЕНЬШЕ, чем текущее время?
Если текущая дата и время - 17 июня 2010 г., 12:25, я хочу, чтобы пользователь не мог указать дату до 17 июня-2010 г. и время до 12:25.
Как и моя функция, возвращает false, если время, введенное пользователем, - 16 июня 2010 года, а время 12:24.
Microsoft также реализовала операторы «<» и «>». Таким образом, вы используете их для сравнения двух дат.
источник
date1.ToLocalTime() < DateTime.Now
либоdate1.ToUniversalTime() < DateTime.UtcNow
.Ответ MuSTaNG говорит сам за себя, но я все еще добавляю его, чтобы сделать его немного более сложным, со ссылками и всем этим.
Обычные операторы
>
) ,<
) ,==
) ,доступны для
DateTime
.NET Framework 1.1. Кроме того, сложение и вычитаниеDateTime
объектов также возможно с использованием обычных операторов+
и-
.Один пример из MSDN:
Равенство:Аналогичным образом можно использовать и другие операторы.
Вот список всех доступных операторов
DateTime
.источник
+
для двухDateTime
операндов, вы можете сделатьDateTime - DateTime
, илиDateTime + TimeSpan
, илиDateTime - TimeSpan
.В общем случае нужно сравнивать
DateTimes
с таким жеKind
:Объяснение от MSDN о
DateTime.Compare
(Это также актуально для операторов , таких как>
,<
,==
и т.д.):Таким образом, простое сравнение может дать неожиданный результат при работе с тем,
DateTimes
что представлены в разных часовых поясах.источник
Если у вас есть два DateTime, которые выглядят одинаково, но Compare или Equals не возвращает то, что вы ожидаете, это как сравнить их.
Вот пример с точностью до 1 миллисекунды:
источник
источник
DateTime
неstring
Вот типичный простой пример в среде Unity
источник
источник